Version complète: sur le forum Webmaster Hub : RedirectPermanent avec variable dans l'ancienne URL
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
sebus
Bonjour,
Suite à une refonte de site, je redirige les anciennes URL vers les nouvelles.
Ca marche bien pour ce style de redirection :

CODE
RedirectPermanent /oisans-decouverte-activite-hiver.htm http://www.mondomaine.com/decouverte-culture-montagne-282.html


Mais pas du tout dans ce cas là :

CODE
RedirectPermanent /activite/article.php3?id_article=47 http://www.mondomaine.com/sport-loisir-montagne-47.html


Dans ce cas précis, j'obtiens une erreur :

The requested URL /activite/article.php3 was not found on this server.

Y'a un problème avec le caractère '?' dans l'ancienne URL
Merci d'avance si quelqu'un à la solution,
Seb
ALeX!S
Il faut utiliser des délimiteurs il me semble ...

CODE
RedirectPermanent ^/activite/article.php3?id_article=47$ http://www.mondomaine.com/sport-loisir-montagne-47.html


(Je suis pas un pro donc je me plante peut être ...)
sebus
Non ça ne marche pas, le résultat est le même... Merci quand même !
Dudu
A tout hasard, quel est ton hébergeur ?

Car peut-être celui-ci a-t-il une configuration spéciale de telle sorte que les règles .htaccess doivent être légèrement modifiées (c'est le cas notamment pour certaines règles avec OVH ou 1&1).
sebus
Mon hébergeur est NFrance.
sebus
Bon, je viens de tester sans les variable dans l'URL, c'est à dire ça :

CODE
RedirectPermanent /activite/sommaire-annuaire.php3 [url="http://www.mondomaine.com/vacances-montagne-loisirs.html"]http://www.mondomaine.com/vacances-montagne-loisirs.html[/url]


Et là ça fonctionne bien

J'en déduis que le problème vient de l'interpretation du caractère ? dans l'url ...
Cela aide-t-il quelqu'un à trouver la façon de faire ? smile.gif
Merci !
sebus
J'ai trouvé !

Il faut échapper TOUS les caractères spéciaux :

CODE
RedirectPermanent /activite\/sommaire-annuaire\.php3\?id_rubrique=2 http://www.mondomaine.com/vacances-montagne-loisirs.html


voila...
sebus
Bon j'avais tout faux, ça ne marche pas, et je crois que la solution est dans ce genre de syntaxe, les variables ne sont pas pris en compte dans un redirectperamanent :

CODE
RewriteCond %{QUERY_STRING} ^lg=FR&page_init=1$
RewriteRule ^oisans-calendrier.php http://www.mondomaine.com/index.html [QSA,L,R=301]


Trouvé la solution ici : http://drupalfr.org/node/1865
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.