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

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
 
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"];}
 
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 !!! :!:
 
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).
 
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.
 
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 ...
 
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