urlrewrite

Initiation à 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…

 

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:

schéma d'explication de l'ur rewriting sous apache

  1. Le navigateur demande au serveur la page tuto-5.html
  2. Le serveur Apache associe tuto-5.html à la page index.php?idtuto=5
  3. La page index.php?idtuto=5 s’éxécute sur le serveur
  4. 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:

4 commentaires

S'abonner au RSS des commentaires
  1. web
    Posté le 14/09/2010 à 11h05

    Merci pour ce tuto instructif.

  2. François
    Posté le 26/08/2009 à 19h58

    Salut,
    Si ca t’intéresse y’a la doc d’Apache qui fais ca:
    http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

    Petit hic c’est en Anglais, mais à priori tout y est…

  3. creation web
    Posté le 26/08/2009 à 16h39

    Bonjour,

    Je cherche de la documentation complète sur l’url rewriting ou la réécriture d’url.

    J’aimerai trouver un tutoriel complet afin de mettre en place un système fiable et complet. J’ai essayé diverses techniques sur mon site mais aucune ne remplie toutes les conditions pour un bon référencement google.
    Donc si vous connaissez un livre, ou de la doc complète, je vous en serai reconnaissant.

    Merci d’avance.

  4. John
    Posté le 18/04/2009 à 10h19

    Merci beaucoup pour ce tutorial simple qui propose une première approche très clair de l’utilisation de l’url rewriting.

    Encore merci!

Laisser un commentaire

Votre e-mail ne sera jamais publié ni communiqué. Les champs obligatoires sont indiqués par *

*
*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>