La page d’erreur 404
et la redirection 301

(Programmation de base pour débutants)

Vous avez fait une mise à jour de votre site internet et vous êtes heureux d’avoir changé les noms de vos pages pour qu’elles soient plus faciles à naviguer et que les noms reflètent bien maintenant ce qu’elles contiennent. Enfin, fini les pages «about_fr.html», «quote_fr.htm» et les autres. Bienvenue aux nouvelles pages «devis.html» et «apropos.html», justement, à-propos de vos changements, avez-vous pensé à votre ancienne indexation sur Google? Avez-vous des liens provenant de d’autres sites internet donc vous n’êtes pas responsable? Si vous ne vous en occupez pas, cela aura-t-il un effet sur votre site?

Oui, cela peut avoir un effet négatif sur le classement de votre site. Des liens mort résulte la plupart du temps en une erreur 404 (non trouvé, sujet traité sur Google, ici), ce qui va contre l’idéologie d’une navigation facile, surtout si elle n’est pas personnalisée. Selon mes déductions, le géant de la recherche dirait qu’il est préférable de faire une «redirection» pour les pages déplacées de manière définitives, mais pas n’importe comment. Car rediriger simplement vers l’autre page en utilisant un document de type «.html» ne dit pas au Robots d’exploration Google que votre page a déménagé et de garder le «Rank» de celle-ci. De plus, «Googlebot» pourrait peut-être voir ceci comme une embuche pour l’utilisateur qui n’accepte pas les redirection simple, comme celle des publicitaires sur internet. La façon proposée par Google est une redirection dite permanente (code 301).

Une redirection 301 peut-être effectué de différente façon. Si vous avez accès au document .htaccess de votre serveur, il est facile d’y mettre en place les redirections nécessaires. Note très importance ici, le document .htaccess débute avec un «.», ce qui fait de lui un document normalement invisible sur votre ordinateur, donc, avant de le télécharger, changez son nom. Modifiez-le temporairement, par exemple, en ajoutant 000 devant le «.» (000.htacess). À la fin des modifications, après que vous l’aurez téléversé sur votre serveur, a ce moment là, vous pouvez enlever les trois zéros pour lui redonner son nom original. Les petites modifications à faire sont d’ajouter les lignes pour les changements d’adresses, une ligne par redirection :

Dans ce cas, j’ai personnalisé les pages d’erreur et la page 404 est devenue du même coup la page de redirection 301 (les redirections sont absentes dans le document .htacess). Comme vous pouvez voir dans l’image ci-dessus, mon serveur utilisera la page 404.php pour les erreurs d’URL. Alors, quand un usager entre un URL qui n’est pas reconnu pour le site, le document PHP vérifie si la page demandée est dans celles qui ont déménagées. Si c’est le cas, le script renvoie l’usager à la bonne page et de plus si c’est un Robot, il lui indique que la redirection est permanente (301). Dans un cas ou l’usager a fait une erreur dans l’adresse, c’est la page d’erreur 404 qui lui sera envoyé pour l’aviser.

Exemple de script du document 404.php

$_SERVER[‘REQUEST_URI’]

Ce code va aller chercher la queue de l’adresse, ce qui se retrouve après le .com, .net, .org ou .ca, et même les variables seront capturées (ex.: MyWebSite.ca/YoBozo.php?variable=here). Si la capture de l’URL est égale à une des anciennes adresses, elle sera indiqué comme «301 Moved Permanently» pour le Robot puis redirigé vers la bonne adresse. Dans le cas où la capture de l’URL n’est pas retrouvée dans la liste, «else» sera utilisé et va inclure la page d’erreur 404b.php. A ce moment l’usager reçoit dans son navigateur la page personnalisé d’erreur. Ici, comme la page a inclure est aussi du script PHP, on peut profiter de la variable $_URLvar et l’inclure dans la page d’erreur pour afficher à l’usager l’adresse exact qui a été demandé au serveur par son navigateur.

Exemple de script ; document 404b.php sera inclus dans 404.php, si la page n’est pas à rediriger.

Vous pouvez télécharger les documents ici et les modifier pour votre usage :
.htaccess pour redirection et pages erreur en HTML (téléchargement)
.htaccess pour redirection et pages erreur en HTML et PHP + 404.php et 404b.php (téléchargement)

N’oubliez pas de créer ou modifier vos pages personnelles d’erreur, voici une liste principale :

  • 301 : document déplacé de façon permanente
  • 302 : document déplacé de façon temporaire
  • 401 : utilisateur non authentifié (si vous avez des dossiers protégés avec un mot de passe)
  • 403 : accès refusé (si vous avez des dossiers protégés avec un mot de passe)
  • 404 : fichier introuvable
  • 418 : le serveur HTCPCP est une théière =O)
  • 500 et 503 : erreur serveur

Vous pouvez trouver la liste complète sur Wikipedia

Pour tester vos redirections, je vous propose ce site : www.redirection-web.net