Dossier L'URL Rewriting avec Apache, pour de belles adresses

Le serveur Web Apache propose un module d'URL Rewriting, qui permet de créer des adresses virtuelles afin de masquer les URL complexes des pages Web dynamiques.


L'utilisation des règles de réécriture d'URL permettent d'améliorer le référencement de vos pages par les moteurs de recherche ou encore la mémorisation par le visiteur, qui pourra comprendre plus facilement l'adresse.

Le module URL Rewriting n'est pas activé par défaut avec Apache. Dans le cas d'un hébergement mutualisé, c'est le prestataire qui décide de sa disponibilité. Si au contraire, vous êtes maître de votre installation, vous pouvez vous en charger vous même.
 

Installation du module


La procédure d'installation et d'activation du module est assez semblable selon votre installation (système d'exploitation, paquets de la distribution ou compilation manuelle...).

Ces modifications s'appliquent dans le fichier de configuration d'Apache, généralement httpd.conf, ou apache*.conf (où * peut correspondre à la version installée).

La plupart du temps, il suffit de rendre actives les lignes suivantes, en supprimant le caractère # en début de ligne :

   1. LoadModule rewrite_module modules/mod_rewrite.so
  2. AddModule mod_rewrite.c 


Si vous ne les trouvez pas, il est possible que les modules soient localisés dans un autre répertoire que module/ sur votre installation : vérifiez ce point, sinon ajoutez-les, tout simplement !

Si vous avez compilé Apache par vous même, vous aurez peut-être à reprendre cette installation en ajoutant le paramètre --enable-rewrite (ou --enable-rewrite=shared) lors de l'étape de configuration.

Les règles de modification des URLs sont placées dans un fichier

Enfin, vous devrez recharger Apache, généralement avec l'une de ces commandes : apache2 -k restart, apachectl -k restart, ou encore /etc/init.d/apache restart. Sous windows, il vous suffira d'utiliser les raccourcis graphiques.
 

Un premier test


Généralement, les règles de modification des URLs sont placées dans un fichier .htaccess (pour une installation standard), qui permet d'ajouter des directives qu'Apache appliquera au répertoire dans lequel se trouve le fichier.

Créez un fichier .htaccess à la racine de votre site internet et placez-y ces quelques lignes :

   1. <IfModule mod_rewrite.c>
  2. RewriteEngine On
  3. RewriteRule ceci_est_un_test /index.html
  4. </IfModule>

Ces lignes auront normalement pour effet d'afficher la page d'accueil (index.html) si vous essayer d'afficher ceci_est_un_test. Essayons maintenant de comprendre ces quelques lignes?

La condition <IfModule mod_rewrite.c> indique à Apache qu'il doit vérifier que le module est disponible avant de tenter d'appliquer les règles placées entre les deux balises. La directive RewriteEngine On permet d'indiquer que le module Url Rewriting doit être activé pour ce répertoire. Enfin, la directive RewriteRule sert à enregistrer une règle de conversion d'URL. La chaine de caractères avant l'espace indique le format de l'URL recherchée, l'autre indique l'adresse réellement sur le serveur.

Ces règles sont définies à l'aide de la syntaxe des expressions régulières.

Lire aussi :
Générer des URL optimisées pour le SEO avec PHP [URL Rewriting]
- Utiliser $_GET pour avoir de bonnes URL pour le SEO
SEO et Opencart : résoudre un problème d'URL mal optimisée