Base de connaissances · .htaccess

Comment configurer des URL optimisées pour les moteurs de recherche ?

Dernière mise à jour : 2019-02-03

Voici une méthode permettant d'utiliser une URL optimisée pour les moteurs de recherche, telle que http://www.example.com/blog/2007/jan dans le navigateur, qui sera transformée côté serveur en http://www.example.com/blog/index.php?year=2007&month=jan sans modifier ce qui s'affiche dans la barre d'adresse du navigateur.

Cette opération s'effectue à l'aide de la directive mod_rewrite dans votre fichier .htaccess. Pour cela, votre fichier .htaccess doit contenir les lignes suivantes, à raison d'une directive par ligne :

RewriteEngine On
RewriteRule ^blog/([0-9]+)/([a-z]+)$ /blog/index.php?year=$1&month=$2 [nc]


EXPLANATION:

RewriteEngine On
La première ligne permet de s'assurer que RewriteEngine est activé.

RewriteRule ^blog/([0-9]+)/([a-z]+)$ /blog/index.php?year=$1&month=$2 [nc]
La deuxième ligne s'explique comme suit :
^blog/ - garantit que la recherche porte sur le début de la chaîne commençant par blog

([0-9]+) - recherche une suite de chiffres de 0 à 9. Le + à la fin garantit la correspondance avec des chiffres répétés une ou plusieurs fois, comme dans le cas de 2007.

([a-z]+)$ - recherche une saisie en lettres minuscules. Le + à la fin garantit la correspondance avec des lettres répétées une ou plusieurs fois, comme dans le cas de Tree. Dans cet exemple, la casse n'a pas d'importance en raison de ce que nous avons ajouté à la fin de la règle. Le signe dollar à la fin indique simplement à la directive de rechercher la fin de la ligne.

/blog/index.php?year=$1&month=$2 - il s'agit de l'adresse en laquelle le site web traduira l'URL, où $1 correspond à la première valeur reçue, ici 2007, et $2 à la seconde valeur reçue, ici jan.

[nc] - Cette option signifie « no case » ou « insensible à la casse ». Lorsqu'elle figure à la fin de la règle, la casse de la saisie n'a aucune importance. Par exemple, http://www.example.com/blog/2007/JaN produira le même résultat que http://www.example.com/blog/2007/jan.

Cette règle peut facilement être étendue pour prendre en compte de nombreux types de saisies, de manière plus générale ou plus précise, à l'aide d'expressions régulières (regex/regexp). Vous trouverez plus d'informations sur les expressions régulières et leur utilisation à l'adresse suivante :
http://www.regular-expressions.info/tutorial.html

Vous trouverez également des informations plus complètes sur la directive mod_rewrite à l'adresse suivante :
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

← Tous les articles de la base de connaissances

Tell us what you need

Compare available plans or describe your workload so we can discuss a suitable starting point.