Maxime Millet

Redirection 301 sans paramètres (Query_String)

22/07/2012 | |

Lorsque l'on change l'adresse d'une page (que ce soit le nom ou le chemin) de manière définitive il faut créer une redirection 301.

Cette redirection est "propre", elle va permettre aux moteurs de recherche de garder la réputation de l'ancienne page (si le thème du contenu est le même bien sur) et ne sera pas compté comme du duplicate-content. Ils peuvent quand même mettre quelques semaines pour effectuer le changement de l'adresse dans leur index...

Une redirection 301 est très simple à mettre en place, il suffit d'utiliser la directive RedirectPermanent d'apache comme ci-dessous.

RedirectPermanent /fruit-pomme.html http://www.exemple.com/fruits/pomme.html

Jusque là pas de problème, c'est assez facile. Maintenant si vous souhaitez faire une redirection dont l'ancienne contient des paramètres d'url (des GET ou Query String) celles-ci vont être automatiquement transférées avec la nouvelle adresse.

RedirectPermanent /fruit.html?fruit=pomme http://www.exemple.com/fruits/pomme.html

Dans le cas ci-dessus, le visiteur ne sera pas redirigé vers /fruits/pomme.html mais vers /fruits/pomme.html?fruit=pomme . J'ai trouvé deux solutions pour résoudre ce problème, la première consiste à ajouter un ? à la fin de la nouvelle adresse, les paramètres ne seront pas transférées comme ci-dessous :

RedirectPermanent /fruit.html?fruit=pomme http://www.exemple.com/fruits/pomme.html?

La deuxième solution consiste à faire la redirection dans l'ancienne page avec PHP et grâce à la fonction header().

<?php header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.exemple.com/fruits/pomme.html"); ?>

Commentaires





Remarque : Votre commentaire sera visible après validation par le webmaster.