Comment créer une redirection 301 ?

Avec une redirection 301, un serveur web renvoie le code de statut HTTP 301 au client qui fait la requête et qui peut être, par exemple, un Google-Bot ou un utilisateur. Le code de statut indique au client que la ressource demandée, que ce soit une adresse URL ou autre, a été définitivement déplacée et qu’elle est maintenant disponible sur une nouvelle adresse URL.

Il est facilement possible de créer une redirection 301 avec PHP ou avec un fichier .htaccess et le module mod_rewrite, si on utilise un serveur Web Apache.

Créer une redirection 301 avec PHP

Pour créer une redirection 301 avec PHP, le document source doit être un fichier PHP. Si c’est le cas, le code PHP pour la redirection 301 sera ajouté directement dans le document qui est censé être redirigé.

Pour cela, vous pouvez coller le code source suivant dans la première ligne du document que vous souhaitez rediriger :

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.domain.com/the-new-name.php");
header("Connection: close");
?>

Fonction : après avoir collé et sauvegardé le code source ci-dessus dans le fichier « the-old-name.php », auquel on peut accéder par « domaine.com/the-old-name.php », tous les visiteurs seront redirigés vers la nouvelle source « domain.com/the-new-name.php » (ligne 3) et le code de statut HTTP 301 moved permanently s’affichera.

Créer une redirection 301 avec .htaccess

Si vous préférez créer une redirection 301 avec un fichier .htaccess, vous devez disposer d’un serveur Web Apache et vous devrez activer le module mod_rewrite. Étant donné qu’Apache est l’un des serveurs Web les plus populaires, presque tous les gros hébergeurs Web l’utilisent. De plus, le module mod_rewrite est déjà activé dans la plupart des cas. Le fichier .htaccess est également inclus par défaut dans la plupart des lots d’hébergements Web.

Pour créer la redirection, collez le code source suivant dans le fichier .htaccess :

RewriteEngine On
RewriteRule  ^/directory/a-document.html http://www.domain.com/a-document.html [R=301]

Fonction : en utilisant la commande « RewriteEnginge On », le module mod_rewrite du serveur Web Apache sera activé. La deuxième ligne du code commence par « Redirect 301 » et définit le code de statut HTTP qui devrait s’afficher. Ensuite, vous devez préciser le chemin que le document qui va être redirigé doit prendre – par exemple, http://www.domain.com/directory/a-document.html. Une fois que c’est fait, il vous faudra ajouter un espace et écrire l’adresse URL ciblée sur la même ligne – l’adresse URL ciblée est l’adresse URL vers laquelle vous souhaitez rediriger Google-Bot ainsi que les utilisateurs.

Dans notre exemple, on ne peut plus trouver le fichier « a-document.html » sur le « /directory/ », mais on le trouve au niveau supérieur, à la racine du domaine.

Créer une redirection 301 avec NGINX, Lighttpd ou Microsoft Internet Information Services (IIS)

Créer une redirection 301 sur d’autres serveurs web, comme NGINX, Lighttpd ou IIS, n’est pas si simple pour les utilisateurs sans expérience.

Explication en vidéo par Matt Cutts / Google à ce sujet

Y a-t-il une limite au nombre de redirections 301 (permanentes) que je peux faire sur un site ?

Dans cette vidéo, Matt Cutts répond notamment aux questions : y a-t-il une limite au nombre de redirections 301 (permanentes) que je peux faire sur un site ? Combien de redirections puis-je enchaîner ?

Plus d’informations à ce sujet :