Source ::
Titre :: Introduction à la réécriture d´url - 2ème partie
Catégorie :: Urlrewriting
URL de l'article :: /introduction-a-la-reecriture-d-url-2eme-partie_16.html
Auteur de l'article :: Admin
Date d'enregistrement de l'article :: 03 Avril 2009
Description :: Les conditions de Rewrite

Une ou plusieurs directives RewriteCond peuvent être placés pour soummettre à condition les types de requêtes qui seront soumises aux RewriteRule suivants. Le premier argument est une variable qui décrit une des caractéristiques de la requête, le second argument est une expression régulière qui doit correspondre à la variable, et un troisième argument optionnel est une liste d’indicateurs qui modifient la façon dont la condition est évaluée.

Par exemple, pour envoyer à un autre serveur toutes les requêtes à partir d'une plage d'adresses IP, vous pourriez utiliser:




Introduction à la réécriture d´url - 2ème partie


<strong>Les conditions de Rewrite</strong> 

Une ou plusieurs directives <i>RewriteCond</i> peuvent être placés pour soummettre  à condition les types de requêtes qui seront soumises aux <i>RewriteRule</i> suivants. Le premier argument est une variable qui décrit une des caractéristiques de la requête, le second argument est une expression régulière qui doit correspondre à la variable, et un troisième argument optionnel est une liste d’indicateurs qui modifient la façon dont la condition est évaluée.

Par exemple, pour envoyer à un autre serveur toutes les requêtes à partir d'une plage d'adresses IP, vous pourriez utiliser:


RewriteCond %{REMOTE_ADDR} ^10\.2\.
RewriteRule (.*) http://intranet.example.com$1 


Lorsque plus d'une RewriteCond est spécifiée, elles doivent toutes matchées pour que les RewriteRule puissent être appliquées. Par exemple, pour refuser les demandes qui contiennent le mot "hack" dans leur chaîne de requête, sauf si elles contiennent aussi un cookie contenant le mot "go", vous pourriez utiliser:


RewriteCond %{QUERY_STRING} hack
RewriteCond %{HTTP_COOKIE} !go
RewriteRule .* - [F] 


Notez que le point d'exclamation signale une correspondance négative, de sorte que la règle ne s'applique que si le cookie ne contient pas le mot "go".
Les correspondances dans les expressions régulières contenues dans les RewriteCond peuvent être utilisées dans le cadre de la Substitution dans la RewriteRule, en utilisant les variables %1, %2, etc. Par exemple, ceci enverra la requête vers un répertoire différent en fonction du nom d’hôte utilisé pour accéder au site:


RewriteCond %{HTTP_HOST} (.*)
RewriteRule ^/(.*) /sites/%1/$1 


Si la requête concernait http://example.com/foo/bar, alors %1 devrait contenir example.com et $1 devrait contenir foo/bar.

Introduction à la réécriture d'url - 1er partie