A quoi sert l’URL Rewriting?
L’URL Rewriting est un processus qui permet de réécrire des URL, autrement dit il permet à votre serveur web d’envoyer des pages web dont les noms de fichiers ont été renommés. Utilisés dans la plupart des sites web dynamiques, il sert pour deux principales raisons:
- Il contribue à un meilleur référencement, en effet, de nombreux moteurs de recherche donnent beaucoup d’importance au noms des fichiers. Il est donc important d’avoir un nom de fichier avec des mots-cléfs.
- Ce procédé permet entre autre de sécuriser un peu mieux votre application web, dans le sens ou le nom de vos variables pourront maintenant être caché.
Comment ça fonctionne?
Voici une représentation simplifié du fonctionnement de l’Url Rewriting:

- Le navigateur demande au serveur la page tuto-5.html
- Le serveur Apache associe tuto-5.html à la page index.php?idtuto=5
- La page index.php?idtuto=5 s’éxécute sur le serveur
- Apache renvoie enfin la page avec son nom d’origine (tuto-5.html)
Mise en place sur un site web
Tout se passe dans un fichier qui se nomme « .htaccess » et qui se trouve généralement à la racine de votre site internet. Ce fichier est interprété par Apache (dans ce tutorial je ne traiterais que du serveur Apache car c’est le seul que je connais et surtout le plus utilisé).
Avant de commencer, il faut vérifier si votre serveur est configuré de manière à accepter la redirection d’URL. Si vous êtes sur un serveur mutualisé, vous ne devriez pas avoir de problèmes, il doit être déjà activé par défault. Pour les autres, vous devez aller dans le fichier « apache/conf/httpd.conf » et vérifier que ces lignes sont bien activées (C’est à dire pas de « # » devant la ligne).
LoadModule rewrite_module libexec/mod_rewrite.so AddModule mod_rewrite.c
Une fois cette étape effectuée, les choses intéressantes commencent: créez votre fichier .htaccess à la racine de votre site avec ces 2 lignes.
Options +FollowSymlinks RewriteEngine on
Pour notre exemple, créez une page HTML de test et nommez la « exemple.html » en la placant dans le même répertoire que celui de votre fichier « .htaccess » (c’est à dire à la racine de votre site, si vous avez tout suivi).
La commande qui permet la réécriture d’URL est à placer dans votre fichier « .htaccess »:
RewriteRule mon-url-de-base.html monfichier-sur-le-serveur.php
A noter que je préfère utiliser l’extension .html plutôt que .php, même si au niveau du référencement, cela ne change pas grand chose, la logique voudrait qu’on utilise l’extension .html car il s’agit au final d’un fichier HTML. Maintenant à vous de jouer:
Options +FollowSymlinks RewriteEngine on RewriteRule ^test.html exemple.html
Ainsi dans votre navigateur, si vous demandez la page « test.html », le serveur vous renverra la page « exemple.html ». Vous aurez aussi sans doute remarqué le caractère « ^ » avant « test.html », il permet d’indiquer le début de la chaine de caractère, si vous l’enlevez vous pourriez accéder à la page « exemple.html » même si vous souhaitez accéder à la page « un-super-test.html ».
Bien entendu, la puissance de l’URL Rewriting ne se résume pas à une réécriture basique et linéaire. Voici une utilisation un peu plus poussée et qui est d’ailleurs utilisée pour cette page:
Options +FollowSymlinks RewriteEngine on RewriteRule ^test.html exemple.html [L] RewriteRule -actu-([0-9]+).html index.php?page=actualite&id=$1 [L]
Ici le bloc entre parenthèses (supposé être composé de un ou plusieurs chiffres) est considéré comme une variable. Cette variable est ensuite réutilisée dans l’url de droite via « $1″. Pourquoi « $1″? Tout simplement parcequ’il s’agit du premier bloc entre parenthèses rencontré, donc la première variable. la chaine « [L] » permet d’indiquer au serveur d’ignorer les autres commandes si il trouve la redirection appropriée.
Voilà, je pense que vous connaissez les bases pour mettre en place ce système pour un petit site web. Pour plus d’informations, je vous conseille d’aller faire un tour sur ces 2 sites web:



