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 :
- Commencer chaque nouvelle règle avec la commande RewriteRule pour indiquer que vous commencer une nouvelle règle ;
- Ensuite, entrez le nom de fichier à partir duquel vous voulez configurer la redirection. Ce nom sera le chemin relatif à ce fichier, commençant par ^ et finissant par $ ;
- Entrez alors l’URL de destination de votre redirection ;
- La dernière partie de votre règle doit être [R=301] pour indiquer que votre processus de redirection utilise un code 301.
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.
- [0-9]: caractère numérique
- [a-z]: caractère alphabetical minuscule
- [A-Z]: caractère alphabetical majuscle
- [A-Za-z]: caractère alphabetical majuscule ou minuscule
- [0-9A-Za-z]: caractère alphanuméique l majuscule ou minuscule
- ?: Zéro ou une occurrence de la série précédemment définies
- *: Zéro ou plus occurrence de la série précédemment définies
- +: Zéro ou plus occurrence de la série précédemment définies
YVous pouvez en apprendre plus sur les expressions régulières et leur usage en lisant ce .tutorial en ligne.