URL Rewriting : comment utiliser le signe '=' dans une %{QUERY_STRING}

Nouveau WRInaute
Bonjour,

Je souhaite rediriger des pages du type

http://www.monsite.com/dir/index.html?page=/dir/toto.html vers
http://www.monsite.com/dir/toto.html

Normalement l'URL Rewriting suivant devrait faire l'affaire :

RewriteCond %{QUERY_STRING} page=/dir/(.*)
RewriteRule ^dir/index.html(.*) /dir/%1? [L]

mais en fait, le signe '=' est un caractère spécial, et la règle n'est donc pas comprise

---> Quelqu'un sait-il comment faire un 'escape' du signe '=' pour qu'il soit interprété en tant que tel et non comme caractère spécial ?

Merci de votre aide

PS: ne me demandez pas pourquoi j'ai des pages avec des URL si bizarres (!) Cela provient d'une très ancienne version du site qui comprenait des frames.
 
WRInaute impliqué
Le signe « = » n'est pas un caractère spécial. Je ne vois pas d'erreur dans tes règles.
Es-tu sur que rien ne parasite ? Par exemple, des règles placées avant celle-ci.

Par contre, le point est un caractère spécial (signifie « tout caractère »). Dans tes règles, le point n'est pas concidéré comme un point d'extension de fichier.

Ton code, un peu plus propre :
Code:
RewriteCond %{QUERY_STRING} page=/dir/(.*)
RewriteRule ^dir/index\.html /dir/%1? [L]

Je ne vois rien qui ne ferai pas fonctionner.
 
Nouveau WRInaute
Merci Blount,

J'ai ajouté le '\' pour rendre le code un peu plus propre, mais ça ne fonctionne toujours pas.

Je pense que ce doit bien être à cause du "=" car si j'enlève le "=" dans la règle de rewriting et dans l'URL, ça marche...

Si quelqu'un a une idée, je suis donc toujours preneur !

Merci
 
Discussions similaires
Haut