Accès direct :

Il vous arrive peut-être de devoir changer le nom de domaine ou la structure d’un site. Un immonde /index.php?mapage=outils&souspage=whois se transformant ( grâce à l’url rewriting … ou non ) en un sympathique /outils/whois.htm. Un nom de domaine peut également être remplacé par un plus clair / court / mémorisable / lisible.

Les avantages sont connus : un meilleur référencement, une URL plus claire et plus facile à mémoriser ou à retrouver dans ses favoris/marque-pages, etc.

Mais cette méthode comporte également certains inconvénients : Les moteurs de recherche se « souviennent » de l’ancienne URL et risquent de considérer la nouvelle comme un doublon, des liens peuvent exister vers l’ancienne page, et les webmasters de ces sites peuvent ne pas répondre … ou ne plus tenir à jour leur site, et plus important : des favoris/marque-pages de visiteurs peuvent mener vers une page d’erreur 404.

C’est pourquoi il est très important de maintenir une cohérence entre l’ancienne page et la nouvelle, en mettant en place une redirection 301 ( définitive ).

Note : Je n’aborderais pas la redirection 302 (redirection temporaire), parce qu’elle n’est vraiment utile que dans de rares cas, et est souvent mal utilisée. Mais c’est un avis personnel qui n’engage que moi.

J’utilise deux techniques différentes, selon les cas de figure, donc à utiliser selon votre préférence : htaccess ou PHP.

Redirection 301 via PHP

Avant tout envoi de code html / css (même les espaces et tabulations), collez ce code :

<?php
header('Location: http://www.monsite.com/nouvelleurl.htm', true, 301);
exit();
?>

Notes :

  • J’utilise toujours des URL absolues (avec http: //mondomaine.com avant) pour être sûr de la destination.
  • Les deux derniers paramètres ( true et 301 ) sont obligatoires pour un bon fonctionnement.
  • Un espace après "location", pas avant !
  • Le exit(); permet d’arrêter votre script juste après, et de ne pas envoyer de données. Au choix.
  • J’utilise cette méthode pour rediriger une URL dynamique ou indésirable vers une autre, en complément d’un lien canonical.

Redirection 301 via .htaccess ( Apache )

Dans un fichier .htaccess créé à la racine de votre site ( généralement le même dossier que le index.php ou index.htm principal ), collez ce code :

RedirectPermanent /ancienneurl.php http://www.monsite.com/nouvelleurl.htm

Notes :

  • La casse de la commande peut changer selon les scripts, mais je me base sur la syntaxe donnée par le manuel Apache(Serveur Web). Bon à savoir, cette page peut également vous fournir d’autres redirections plus complexes (mais bien utiles) comme RedirectMatch.
  • Encore une fois, une URL absolue pour la destination.
  • Le module Apache mod_alias.c doit être activé. Mais par défaut … c’est fait. Si le bout de code ne marche vraiment pas, contactez votre hébergeur.

Bonne redirection à tous !

PS : évidemment, mes méthodes ne sont sûrement pas les meilleures. Mais si vous avez mieux, les commentaires sont là pour ça :D.
PS2 : Ce blog tourne vraiment au bloc-notes et aide mémoire. Mais si vous lisez cette phrase, c’est que ça vous a intéressé, oui ? ( non ? Partez pas, quoi 🙁 )

Tags : , ,