Récup de paramètres GET en URL rewriting chez OVH [résolu]

T509

Nouveau WRInaute
Bonjour

Je suis hébergé chez OVH avec un compte GP60

Je souhaite pouvoir écrire mes URL de la façon suivante :

www.dar-leila.com/essai/dar/param1/param2/index.html

Pour cela j'utilise une règle de ré-écriture dans un fichier .htaccess comme ceci :

Code:
RewriteEngine on
RewriteRule ^(.*)dar/(.*)/index.html$ /$1/dar.php?param=$2 [L]

Donc en théorie l'URL ci-dessus doit me rediriger vers
www.dar-leila.com/essai/dar.php?param=param1/param2

Dans ce cas, pour récupérer la valeur de param, j'utilise en toute logique $_GET['param']

Mon problème est le suivant : la redirection fonctionne mais $_GET['param'] reste non affecté (testé avec isset())

Il doit y avoir une erreur mais je n'arrive pas du tout à la localiser. Pourriez vous m'aider. Merci

-----------------------------------------------------------------------
Solution :
C'est la règle qui n'est pas bonne mais je ne sais pas expliquer pourquoi.
j'utilise maintenant :
Code:
^dar/([a-z]+)/([a-z]+)\/index\.html$ /essai/dar.php?param=$1-$2 [L]

et cela fonctionne

Merci pour votre aide à tous
 

ludoanimation

WRInaute impliqué
Salut,

je suis sur le meme plan que toi , et chez moi le test de variable par iset marche , moi ma valeur s'appelle url mais c'est idem.

Code:
if(isset($_GET["url"])) {$url = $_GET["url"];}
 

T509

Nouveau WRInaute
Salut

Je te remercie pour ton information.

Toutefois, je n'y arrive pas mieux, mon paramètre $_GET reste vide
Pourrais tu me donner tes règles de ré-écriture ? Où est placé ton .htaccess ? Quel est son chmod ?

Ou alors, pourrais tu me dire ce qui cloche dans les fichiers suivants :

.htaccess :
Code:
RewriteEngine on
RewriteRule ^(.*)/dar/(.*)/index.html$ /$1/dar.php?param=$2 [L]

Fichier PHP :
Code:
<?php
echo "entree sur la page à ".strftime("%H:%M:%S")."<br>";
if (isset($_GET['param'])){
	 echo "_GET est affectée<br>";
	 echo "parametres GET : ".$_GET['param']."<br>";
	}
else {
	 echo "_GET est vide<br>";
}
echo "REQUEST_URI : ".$_SERVER['REQUEST_URI']."<br><br><br>";
phpinfo();
?>

Merci !!! :!:
 

ludoanimation

WRInaute impliqué
Bon, j'suis pas un pro de chez pro,

dans l'htaccess, j'ai :

Code:
Options +FollowSymlinks
RewriteEngine on 
RewriteRule ^(.+)-(.+)\.html$ /index.php?url=$1-$2 [L]

ce qui veut dire que mes liens sont de la forme /motcle1-motcle2.html et ca me le converti en /index.php?url=motcle1-motcle2 .

ensuite dans mon php je te l'ai indiqué + haut.

Je pense que c'est ta regle de réécriture qui n'est pas bonne (mais la demande la bonne regle aux spécialistes, ce qui n'est pas mon cas).
 

nikoshr

WRInaute occasionnel
La règle a l'air bonne, sinon il y aurait un échec sur la réécriture en dar.php. Reste le PHP mais il semble correct lui aussi. Etrange. Essaie un
Code:
RewriteEngine on 
RewriteRule ^(.*)/dar/(.*)/index.html$ /$1/dar.php?param=$2 [R=301,L]
pour voir ce qu'il raconte lorsque l'UR fait une redirection externe. Ca donnera peut-être des idées.
 

T509

Nouveau WRInaute
Bon effectivement c'est ma règle qui foire.

Maintenant, j'ai ceci :

Code:
RewriteEngine on
RewriteRule ^(.*)\/index.html$ /essai/dar.php?param=$1 [L]

Par contre j'ai :

Code:
$_GET['param'] = dar.php/tyototutu/hgjkfk/yoyo/tutu

Comment se fait il que tout ce qui est passé à la variable param commence par "dar.php/" ???

Je crois que je n'y comprends pas grand chose ...
 

T509

Nouveau WRInaute
Solution définitive

J'ai solutionné mon PB grace aux bouquins O'Reilly sur Apache.
La solution est dans mon 1er Post

A+
Merci :wink:
 

Discussions similaires

Haut