SEO · 5 min read · Jan 02, 2026
Les utilisations utiles de Mod Rewrite
Les utilisations utiles de Mod Rewrite
Auteur : Mike Ems
Dans ce tutoriel, je vais vous enseigner ce qu’est mod rewrite et quelques exemples de ses utilisations. Mod rewrite est un outil puissant et l’une des manières les plus simples de rendre votre site web plus adapté au SEO.
Qu’est-ce que Mod Rewrite ?
Mod rewrite fait partie des serveurs apache qui peuvent réécrire les URL demandées à la volée. Comme il prend en charge un nombre infini de règles qui, à leur tour, ont des conditions de règles illimitées, il est très flexible et constitue un mécanisme important de manipulation des URL. Il peut être utilisé pour les utilisateurs d’internet et pour des URL adaptées aux moteurs de recherche. Cela augmente la chance que le site web basé sur une base de données soit indexé.
Activer / Installer Mod Rewrite
La première chose que nous voulons faire est de nous assurer que nous avons mod_rewrite sur notre serveur. Par défaut, Apache a mod_rewrite installé, mais pas activé. Le moyen le plus simple de tester si mod_rewrite est activé sur votre serveur est de créer un fichier .htaccess dans un répertoire de test tel que /modrewrite-test/.htaccess avec ce qui suit à l’intérieur :
Options +FollowSymLinks
RewriteEngine OnMaintenant, essayez de naviguer vers le sous-répertoire. Deux choses pourraient se produire :
- Pas d’erreurs Félicitations, le moteur mod_rewrite est maintenant activé.
- 500, Erreur Interne du Serveur Si vous obtenez ce message, cela signifie que mod_rewrite n’était pas installé/activé sur votre serveur.
Si vous avez constaté que mod_rewrite n’était pas installé sur votre serveur, suivez ces étapes.
- Trouvez le fichier httpd.conf (vous le trouverez généralement dans un dossier appelé conf, config ou quelque chose de ce genre)
- À l’intérieur du fichier httpd.conf, décommentez la ligne LoadModule rewrite_module modules/mod_rewrite.so (supprimez le signe dièse ‘#’ devant la ligne)
- Trouvez également la ligne ClearModuleList qui est décommentée, puis assurez-vous que la ligne AddModule mod_rewrite.c n’est pas commentée.
Après ces étapes, redémarrez votre serveur apache avec la commande suivante.
/etc/init.d/httpd restartVous devriez maintenant avoir mod_rewrite activé avec succès. Assurez-vous de tester mod_rewrite à nouveau une fois le serveur apache redémarré.
Utiliser Mod Rewrite pour toujours supprimer / ajouter WWW
Un problème facilement résolu que de nombreux sites web rencontrent est la duplication des résultats dans les moteurs de recherche. Dans n’importe quel moteur de recherche donné, http://www.example.com/ et http://example.com sont deux sites web complètement différents. C’est un gros problème car le contenu de votre site web est identifié comme du contenu dupliqué, ce qui fait baisser votre classement dans les moteurs de recherche. En utilisant notre nouvel ami, mod_rewrite, nous pouvons évaluer ce problème.
En haut de tout fichier .htaccess, vous devez activer Mod Rewrite. Cela doit toujours être en haut de votre fichier .htaccess. Vous n’avez besoin d’activer Mod Rewrite qu’une seule fois.
RewriteEngine OnDe plus, vous devez définir votre Rewrite Base. C’est normalement le répertoire dans lequel se trouve le fichier .htaccess. Si votre fichier .htaccess est situé dans votre dossier racine, votre Rewrite Base ressemblerait à ceci :
RewriteBase /Alors, il y a deux options à choisir. Vous pouvez soit choisir de toujours supprimer le www, soit de toujours le garder. Pour toujours supprimer www (ma méthode préférée), créez un fichier .htaccess dans votre répertoire racine. À l’intérieur de ce fichier, ajoutez ce qui suit :
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]De même, si vous souhaitez toujours ajouter www, ajoutez ce qui suit à votre fichier .htaccess :
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) http://www.example.com$1 [R=301]Assurez-vous de changer example.com par votre domaine.
Utiliser Mod Rewrite pour nettoyer vos URL
L’utilisation la plus populaire de Mod Rewrite est de l’utiliser pour nettoyer les URL de votre site web. Comme vous le savez peut-être, les moteurs de recherche ne se soucient pas particulièrement des URL avec beaucoup d’arguments comme beaucoup de sites web en proposent. Exemple :
http://www.example.com/index.php?p=aboutAvec la puissance du module mod_rewrite d’apache, nous pouvons rendre cette URL beaucoup plus propre.
http://www.example.com/about.htmlPour y parvenir, nous allons voir notre bon ami les expressions régulières. Je sais que vous êtes vraiment excité maintenant. Pour accomplir la réécriture ci-dessus, j’ai ajouté ce qui suit à mon fichier .htaccess après les lignes d’ajout/suppression de www.
RewriteRule ^([^/]+).html$ /index.php?p=$1 [QSA,L,NC]Examinons de plus près cette ligne afin que nous puissions vraiment comprendre ce qu’elle fait.
([^/]+)C’est l’expression régulière pour correspondre à tout sauf un slash. C’est le moyen le plus simple de correspondre à tout ce qui se trouve entre deux slashes lors de la réécriture des URL.
.htmlCela réécrit l’URL pour avoir .html à la fin. Cela donne l’apparence d’un fichier .html régulier à votre fichier php.
/index.php?p=$1C’est la partie de la réécriture qui est l’emplacement d’origine. Chaque fois que vous avez une expression régulière dans la première partie correspondant à une certaine chaîne, vous devez la référencer dans cette partie. Le $1 fait référence à la première expression régulière dans la première moitié de la ligne. Ainsi, toute valeur qui est assignée à la variable p est placée là où se trouve la première expression régulière dans la première moitié de la ligne.
Si vous souhaitez que votre URL ressemble à un répertoire, vous utiliseriez cette ligne à la place de celle donnée précédemment.
RewriteRule ^([^/]+)/?$ /index.php?p=$1 [QSA,L,NC]Cela renverrait des URL comme ceci :
http://www.example.com/about/Ajouter un slash final à vos URL
Le principal objectif d’ajouter un slash final à vos URL est d’augmenter les performances du serveur. Lorsqu’un slash final est ajouté à la fin d’une URL qui ne se termine pas par une extension de fichier, cela indique au serveur de ne faire qu’un seul appel à lui-même, réduisant ainsi le trafic du serveur.
Pour toujours ajouter un slash final à une URL qui ne se termine pas par une extension de fichier, comme http://www.example.com, ajoutez ce qui suit à votre fichier .htaccess dans votre répertoire racine.
rewriteCond $1 !/$
rewriteCond %{REQUEST_FILENAME}/ -d
rewriteRule (.+) http://www.example.com/$1/ [R=301,L]La première ligne vérifie s’il n’y a pas de slash final. La deuxième ligne vérifie s’il existe un répertoire avec l’URL donnée si le slash final est ajouté. La troisième ligne ajoute le slash final et redirige l’utilisateur.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.