Réécriture d'URL pour votre site web (Apache)

La réécriture d’URL est une technique qui permet changer la syntaxe des URL de son site. Les avantages sont: un meilleur référencement, une lisibilité pour les visiteurs.

Apache dispose d’un module (chargé par défaut, mod_rewrite) qui permet de faire cette réécriture. On configure la réécriture dans un fichier .htaccess qu’on positionne généralement à la racine du site. Pour chaque type d’URL que l’on veut réécrire il faut créer une règle.

Le fichier .htaccess doit commencer par la ligne:

RewriteEngine on

Ensuite la syntaxe des règles est décrite comme suit:

rewrite
Syntax rewriterule

Exemple 1

Nous voulons que notre page http://www.monsite.fr/index.php soit disponible sous l’URL http://www.monsiyte.fr/accueil.html

Solution, contenu du .htaccess:

RewriteEngine on
RewriteRule ^accueil.html$ /index.php [L]

Le ^ indique le début du pattern, le $ la fin du pattern. Le drapeau [L] indique la fin du traitement des règles si cette règle correspond.

Exemple 2

Je souhaite que mon URL http://www.monsite.fr/index.php?page=mapage soit disponible sous l’URL http://www.monsite.fr/mapage.html . (« mapage » correspond à une chaine de caractère qui correspond à une des pages de mon site)

Solution, contenu du .htaccess:

RewriteEngine on
RewriteRule ^([a-z-]+).html$ /index.php?page=$1 [L]

Cette partie « ([a-z-]+) » est une expression régulière qui correspond à une chaine de caractère. Elle permet de correspondre au nom d’une de mes pages. Le mot « $1 » est l’endroit dans l’URL ou sera envoyé notre première expression régulière (« ([a-z-]+) »).

Pour plus de détails: http://httpd.apache.org/docs/current/fr/rewrite/intro.html