Version complète: sur le forum Webmaster Hub : redirection 301 avec %{QUERY_STRING}
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
darkno
Bonjour,

Vu les craques qui trainent sur ce forum, je fais appel à votre savoir-faire pour m'éclairer!
J'ai un ptit problème pour une redirection & query_string avec plusieurs variables....

Avec une variable ça marche :

CODE
# Règles de reroutage vers les URL conseil rewritées :
RewriteCond %{QUERY_STRING} ^idconseil=([0-9]+)$
RewriteRule ^conseil_detail.php$ http://www.monsite.fr/conseils/conseil-%1\.html? [R=301,L]
# Règles de réécriture d'URL conseil en php :
RewriteRule ^conseil-([0-9]+)\.html$ /conseils/conseil_detail2.php?idconseil=$1 [L]


Avec plusieurs variables ça marche plus ! help please !

CODE
# Règles de reroutage vers les URL rewritées : ( fonctionne pas! )
RewriteCond %{QUERY_STRING} ^typerecherche=parrubrique&rubrique=ma+rubrique&begin=([0-9]+)$
RewriteRule ^mapage.php$ http://www.monsite.fr/catalogue/motclef-%1\.html? [R=301,L]
# Règles de réécriture des URL en php : ( fonctionne )
RewriteRule ^motclef-([0-9]+)\.html$ /catalogue/mapage2.php?typerecherche=parrubrique&rubrique=ma+rubrique&begin=$1 [L]


J'ai oublier ou omis quelque chose?
Est-ce le fait de zapper les premieres variables qui empêche la redirection?
Ou les caractères spéciaux? ( rubrique=ma+rubrique )?

J'ai cherché et essayé un max de truc rien a faire...
Merci pour votre aide.
TheRec
CITATION(darkno @ lundi 7 avril 2008 à 09:46) *
Ou les caractères spéciaux? ( rubrique=ma+rubrique )?

Tu as mis le doigt dessus, c'est bien le "+" qui pose problème. Ce caractère a une valeur spécifique dans une expression régulière (c'est une quantificateur), si tu veux l'utiliser pour sa valeur textuelle, il faut l'échapper en la précédant d'un backslash wink.gif
CODE
RewriteCond %{QUERY_STRING} ^typerecherche=parrubrique&rubrique=ma\+rubrique&begin=([0-9]+)$
RewriteRule ^mapage.php$ http://www.monsite.fr/catalogue/motclef-%1\.html? [R=301,L]

Sinon pour ta RewriteRule, le R=301 n'est pas absolument nécessaire, dès que le second paramètre est une URL complète mod_rewrite effectue une redirection permanente... mais en même temps au moins là c'est plus visuel wink.gif
darkno
merci beaucoup...marche nickel

que de temps perdu pour un backslash !!!
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.