Comment créer une redirection 301 en utilisant les règles de réécritures ?

La configuration d’un serveur Apache vous permet de mettre en place des redirections 301 en utilisant le Mod_Alias qui est par défaut installé sur votre serveur. Mais il est aussi possible de mettre en place des redirections 301 d’une manière plus générique en utilisant une règle de réécriture. Les règles de réécritures sont à la base utilisées pour écrire des URL sur un site web, et pour aider au référencement naturel d’un site. Utilisé avec les bons paramètres et les bonnes options, les règles de réécritures peuvent être utilisées pour définir des redirections 301.



Configuration requise.
Mettre en place une redirection 301 par réécriture d’URL sur un serveur Apache requiert une configuration précise. En premier lieu, vous devez être certain que le module Mod Rewrite est bien installé sur votre serveur. Ce module est déjà présent pour les version Apache 2.0 et 2.2 par contre, si vous possédez la version Apache 1.3 il vous faudra l'installer.

Une fois le module activé sur votre serveur Apache, la définition des redirections 301 n'est qu'une question de ligne de commande à définir dans le fichier appelé ".htaccess" qu'il vous faut placer à la racine du site. Sur un serveur Apache, ce fichier .htaccess contient toutes les commandes et les contrôles que votre serveur doit exécuter avant d’accéder au fichier situé dans le même répertoire. En plaçant votre processus de redirection dans le fichier .htaccess situé à la racine de votre site, vous êtes certain qu’il sera vérifié avant l'accès à n'importe qu'elle autre fichier de votre site.



Configurer une redirection
Pour configurer les règles de réécriture sur votre site web, votre fichier .htaccess doit ressembler à l’exemple ci-dessous :

RewriteEngine on
RewriteBase /
RewriteRule ^old\.html$ new.html [R=301]

Les deux premières lignes du fichier, RewriteEngine on et RewriteBase /, indiquent que les règles d'écritures sont définies dans les commandes qui suivent et que toutes les URL relatives de référence situés après le nom de domaine seront définis.


Une fois ces deux lignes écrites, vous pouvez définir autant de règles de redirections que vous souhaitez. Suivez simplement la structure suivante :



Comment utiliser une expression régulière dans une définition de redirection.
L’un des plus gros avantages de la mise en place de redirections 301 utilisant une règle de réécritures est que vous pouvez définir une redirection dynamique en utilisant une expression régulière. De cette manière, vous n’avez pas à créer une redirection pour chaque page, mais vous pouvez créer une redirection générique pour un schéma spécifique d’URL. Par exemple, si vous voulez créer une redirection pour toutes les pages produits de votre site d'une URL générée en PHP vers une nouvelle qui sera optimisée, vous pouvez utiliser la règle suivante :

RewriteRule ^product.php?id=([0-9]+)(/)?$ product/$1 [R=301]

Le serveur comprend cette règle de la manière suivante : quand il y a une demande d'accès à http://www.mysite.com/product.php?id=125, l’utilisateur est automatiquement redirigé vers http://www.mysite.com/produit/125/. La série $1 représente l’inclusion dynamique d’une expression régulière définie plus tôt dans la nouvelle URL. Dans cet exemple, cela signifie simplement que dans la nouvelle URL $1 sera remplacé par la série trouvé à l'endroit ([0-9]+) dans la première adresse.

YVous pouvez en apprendre plus sur les expressions régulières et leur usage en lisant ce .tutorial en ligne.