Bonjour,
Je dois, pour des questions de référencement, rediriger d'anciennes pages d'un site vers de nouvelles, à l'aide d'une redirection 301.
Je sais qu'il y a deux manières de faire : RedirectPermanent ou RewriteRule.
Les adresses d'origine sont de la forme
Les nouvelles adresses sont de la forme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2ancien.php?page=alpha&id_rubrique=8
Sans que id_rubrique et id_doc aient quoi que ce soit à voir ensemble. C'est pourquoi, j'ai décidé (j'ai pas vraiment le choix) d'écrire une règle par page.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2nouveau.php?id_doc=27
Il existe environ une centaine de page, et comme il n'y a pas de liens possibles entre les anciennes et les nouvelles pages, j'ai écrit les règles de la façon suivante :
Avec RewriteRule
qui ne fonctionne absolument pas (j'obtient une erreur 404).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 RewriteEngine On RewriteRule ^ancien.php?page=alpha&id_rubrique=8$ http://www.exemple.fr/nouveau.php?id_doc=27 [L,R=301]
Avec RedirectPermanent
Qui ne fonctionne pas mieux (erreur 404 aussi).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 RedirectPermanent ancien.php?page=alpha&id_rubrique=8 http://www.exemple.fr/nouveau.php?id_doc=27
Par ailleurs, et en ayant testé pas mal de chose, j'ai remarqué que la réécriture suivante fonctionne :
Lorsque j'apelle ancien.php?page=*&id_rubrique=*, la redirection fonctionne, je me retrouve bien sur la page http://www.exemple.fr/nouveau.php?id_doc=27...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 RewriteRule ^ancien.php$ http://www.exemple.fr/nouveau.php?id_doc=27 [L,R=301]
Le problème, c'est que je ne peux pas différencier mes pages, et donc, rediriger chaque ancienne URL par la nouvelle correspondante...
En espérant avoir été clair...
Partager