L'URL Rewriting avec Apache, pour de belles adresses Les réécritures conditionnelles

La réécriture conditionnelle permet de limiter le cas dans lesquels s'appliquent certaines règles. Vous pouvez utiliser une réécriture conditionnelle pour interdire l'utilisation d'images enregistrées sur votre serveur depuis d'autres pages, ou vérifier d'abord si la page existe rééllement avant d'essayer de transformer l'adresse.

La directive d'Apache à utiliser est RewriteCond, vous devrez généralement effectuer des tests sur les variables d'environnement d'Apache, par exemple % pour tester l'adresse demandée.

Voici comment tester l'existence du fichier avant de rediriger :

   1. RewriteCond % !-f
  2. RewriteCond % !-d
  3. RewriteRule (.+)\.html$ index.php?page=$1

Voici quelques autres exemples d'utilisation :

Ici, l'adresse IP 127.0.0.1 sera, quelque soit l'adresse tapée (.*) redirigé vers inderdit.html.

  1. RewriteCond %(REMOTE_ADDR) ^127.0.0.1$
  2. RewriteRule .* /interdit.html

On peut rediriger les utilisateurs d'Internet explorer vers le site de Mozilla :

   1. RewriteCond %(HTTP_USER_AGENT) MSIE
  2. RewriteRule .* http://www.mozilla.org/

Ou encore interdire le hot linking, c'est-à-dire, l'utilisation d'images hébergées sur votre site depuis un autre :

  1. RewriteCond %(HTTP_HOST) [^(http://www.martiusweb.net/)]
  2. RewriteRule (.+)\.(jpg|gif|png)^ /interdit.$1

 

Lire aussi 

.htaccess : mettre en place une redirection sans changer l'URL

Apache