mod_rewrite.html.fr revision 7fec19672a491661b2fe4b29f685bc7f4efa64d4
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<?xml version="1.0" encoding="ISO-8859-1"?>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess This file is generated from xml source: DO NOT EDIT
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5a58787efeb02a1c3f06569d019ad81fd2efa06end -->
5a58787efeb02a1c3f06569d019ad81fd2efa06end<title>mod_rewrite - Serveur Apache HTTP</title>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
5a58787efeb02a1c3f06569d019ad81fd2efa06end<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="/style/css/prettify.css" />
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen<script src="/style/scripts/prettify.js" type="text/javascript">
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen</script>
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen
5a58787efeb02a1c3f06569d019ad81fd2efa06end<link href="/images/favicon.ico" rel="shortcut icon" /></head>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<body>
d229f940abfb2490dee17979e9a5ff31b7012eb5rbowen<div id="page-header">
3f08db06526d6901aa08c110b5bc7dde6bc39905nd<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossaire</a> | <a href="/sitemap.html">Plan du site</a></p>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<p class="apache">Serveur Apache HTTP Version 2.5</p>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<img alt="" src="/images/feather.gif" /></div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
3f08db06526d6901aa08c110b5bc7dde6bc39905nd<div id="path">
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Modules</a></div>
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd<div id="page-content">
d05d0eb4ae6d2a5e513fc3bf2555ce33da416634nd<div id="preamble"><h1>Module Apache mod_rewrite</h1>
7f5b59ccc63c0c0e3e678a168f09ee6a2f51f9d0nd<div class="toplang">
4b3a8afbfcea8b265d179a122bf40dfedd1ce280takashi<p><span>Langues Disponibles: </span><a href="/en/mod/mod_rewrite.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung<a href="/fr/mod/mod_rewrite.html" title="Fran�ais">&nbsp;fr&nbsp;</a></p>
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd</div>
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd<div class="outofdate">Cette traduction peut �tre p�rim�e. V�rifiez la version
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess anglaise pour les changements r�cents.</div>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Ce module fournit un moteur de r��criture � base de
c573a8f047f4fbd3611d06ed1613e6f4679ef599rbowenr�gles permettant de r��crire les URLs des requ�tes
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen� la vol�e</td></tr>
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur�de�Module:</a></th><td>rewrite_module</td></tr>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<tr><th><a href="module-dict.html#SourceFile">Fichier�Source:</a></th><td>mod_rewrite.c</td></tr></table>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<h3>Sommaire</h3>
5a58787efeb02a1c3f06569d019ad81fd2efa06end
5a58787efeb02a1c3f06569d019ad81fd2efa06end <p>Le module <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code> utilise un moteur de
5a58787efeb02a1c3f06569d019ad81fd2efa06end r��criture � base de r�gles, bas� sur un interpr�teur
5a58787efeb02a1c3f06569d019ad81fd2efa06end d'expressions rationnelles PCRE, pour r��crire les URLs � la vol�e. Par
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess d�faut, <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code> met en correspondance une URL
5a58787efeb02a1c3f06569d019ad81fd2efa06end avec le syst�me de fichiers. Cependant, on peut aussi l'utiliser
5a58787efeb02a1c3f06569d019ad81fd2efa06end pour rediriger une URL vers une autre URL, ou pour invoquer une
5a58787efeb02a1c3f06569d019ad81fd2efa06end requ�te interne � destination du mandataire.</p>
5a58787efeb02a1c3f06569d019ad81fd2efa06end <p><code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code> fournit une m�thode souple et
5a58787efeb02a1c3f06569d019ad81fd2efa06end puissante pour manipuler les URLs en utilisant un nombre illimit�
5ae30adbe59946de742ab0cd6be3b7457471a698takashi de r�gles. Chaque r�gle peut �tre associ�e � un nombre illimit� de
5a58787efeb02a1c3f06569d019ad81fd2efa06end conditions, afin de vous permettre de r��crire les URLs en
5a58787efeb02a1c3f06569d019ad81fd2efa06end fonction de variables du serveur, de variables d'environnement,
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen d'en-t�tes HTTP, ou de rep�res temporels.</p>
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen <p><code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code> agit sur la totalit� de l'URL, y
5a58787efeb02a1c3f06569d019ad81fd2efa06end compris la partie chemin. Une r�gle de r��criture peut �tre
5a58787efeb02a1c3f06569d019ad81fd2efa06end invoqu�e dans <code>httpd.conf</code> ou dans un fichier
5a58787efeb02a1c3f06569d019ad81fd2efa06end <code>.htaccess</code>. Le chemin g�n�r� par une r�gle de
5a58787efeb02a1c3f06569d019ad81fd2efa06end r��criture peut inclure une cha�ne de param�tres, ou peut renvoyer
5a58787efeb02a1c3f06569d019ad81fd2efa06end vers un traitement secondaire interne, une redirection vers une
5ae30adbe59946de742ab0cd6be3b7457471a698takashi requ�te externe ou vers le mandataire interne.</p>
30471a4650391f57975f60bbb6e4a90be7b284bfhumbedooh
5a58787efeb02a1c3f06569d019ad81fd2efa06end <p>Vous trouverez d'avantage de d�tails, discussions et exemples
5a58787efeb02a1c3f06569d019ad81fd2efa06end dans la
5a58787efeb02a1c3f06569d019ad81fd2efa06end <a href="/rewrite/">documentation d�taill�e
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess sur mod_rewrite</a>.</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</div>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<div id="quickview"><h3 class="directives">Directives</h3>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<ul id="toc">
261c62b53a9c707c64c7824eed68b5463bd23e62nd<li><img alt="" src="/images/down.gif" /> <a href="#rewritebase">RewriteBase</a></li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<li><img alt="" src="/images/down.gif" /> <a href="#rewritecond">RewriteCond</a></li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<li><img alt="" src="/images/down.gif" /> <a href="#rewriteengine">RewriteEngine</a></li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<li><img alt="" src="/images/down.gif" /> <a href="#rewritemap">RewriteMap</a></li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<li><img alt="" src="/images/down.gif" /> <a href="#rewriteoptions">RewriteOptions</a></li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<li><img alt="" src="/images/down.gif" /> <a href="#rewriterule">RewriteRule</a></li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</ul>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<h3>Sujets</h3>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<ul id="topics">
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<li><img alt="" src="/images/down.gif" /> <a href="#logging">Journalisation</a></li>
3c29010ad1a706e8d5931b250f1bc751e0dde676rbowen</ul></div>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<div class="section">
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen<h2><a name="logging" id="logging">Journalisation</a></h2>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <p><code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code> offre une journalisation d�taill�e
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen de ses actions aux niveaux de journalisation <code>trace1</code> �
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <code>trace8</code>. Le niveau de journalisation peut �tre d�fini de
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen mani�re sp�cifique � <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code> via la directive
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <code class="directive"><a href="/mod/core.html#loglevel">LogLevel</a></code> : jusqu'au niveau
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <code>debug</code> aucune action n'est journalis�e, alors qu'elles
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen le sont pratiquement toutes au niveau <code>trace8</code>.</p>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <div class="note">
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen L'utilisation d'un niveau de journalisation �lev� pour
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code> va ralentir votre serveur HTTP Apache
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen de mani�re dramatique ! N'utilisez un niveau de journalisation
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen sup�rieur � <code>trace2</code> qu'� des fins de d�bogage !
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen </div>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <div class="example"><h3>Exemple</h3><p><code>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess LogLevel alert rewrite:trace3
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess </code></p></div>
6f7c18e70781deff3d1129774221de81b43c828end
6f7c18e70781deff3d1129774221de81b43c828end <div class="note"><h3>RewriteLog</h3>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>Ceux qui sont familiers avec les versions pr�c�dentes de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code> vont probablement rechercher en vain les
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess directives <code>RewriteLog</code> et
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <code>RewriteLogLevel</code>. Elles ont �t� en effet remplac�es
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess par une configuration de la journalisation par module, comme
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess mentionn� plus haut.
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess </p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>Pour extraire les traces sp�cifiques �
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code>, affichez le fichier journal en
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf redirigeant la sortie vers grep :</p>
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf <div class="example"><p><code>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess tail -f error_log|fgrep '[rewrite:'
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess </code></p></div>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess </div>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</div>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<div class="directive-section"><h2><a name="RewriteBase" id="RewriteBase">RewriteBase</a> <a name="rewritebase" id="rewritebase">Directive</a></h2>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<table class="directive">
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D�finit l'URL de base pour les r��critures au niveau
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kessr�pertoire</td></tr>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RewriteBase <em>chemin URL</em></code></td></tr>
fd98d2e18dca5790daa7e49b4384937e6ba7666cerikabele<tr><th><a href="directive-dict.html#Default">D�faut:</a></th><td><code>Pas de valeur par d�faut</code></td></tr>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r�pertoire, .htaccess</td></tr>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
5ae30adbe59946de742ab0cd6be3b7457471a698takashi<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_rewrite</td></tr>
5a58787efeb02a1c3f06569d019ad81fd2efa06end</table>
5a58787efeb02a1c3f06569d019ad81fd2efa06end <p>La directive <code class="directive">RewriteBase</code> permet de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess sp�cifier le pr�fixe d'URL � utiliser dans un contexte de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess r�pertoire (htaccess) pour les directives
5ae30adbe59946de742ab0cd6be3b7457471a698takashi <code class="directive">RewriteRule</code> qui r��crivent vers un chemin
5ae30adbe59946de742ab0cd6be3b7457471a698takashi relatif.</p>
5ae30adbe59946de742ab0cd6be3b7457471a698takashi <p>Cette directive est <em>obligatoire</em> si vous utilisez un
5ae30adbe59946de742ab0cd6be3b7457471a698takashi chemin relatif dans une substitution, et dans un contexte de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess r�pertoire (htaccess), sauf si au moins une de ces conditions est
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess v�rifi�e :</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <ul>
d565edaec710102f7e7d06252aaf1de67b7ddd25rbowen <li>La requ�te initiale, ainsi que la substitution, sont dans
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess la <code class="directive"><a href="/mod/core.html#documentroot">DocumentRoot</a></code> (c'est �
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess dire que pour y acc�der, il n'est pas n�cessaire d'utiliser
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen une directive telle qu'<code class="directive"><a href="/mod/mod_alias.html#alias">Alias</a></code>).</li>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <li>Le chemin du syst�me de fichiers vers le r�pertoire
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen contenant la <code class="directive">RewriteRule</code>, suffix� par
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen la substitution relative est aussi valide en tant qu'URL sur
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen le serveur (ce qui est rare).</li>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen </ul>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen<p>Dans l'exemple ci-dessous, la directive
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen<code class="directive">RewriteBase</code> est n�cessaire afin d'�viter une
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowenr��criture en http://example.com/opt/myapp-1.2.3/welcome.html car la
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kessressource n'�tait pas relative � la racine des documents. Cette erreur
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowende configuration aurait conduit le serveur � rechercher un r�pertoire
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen"opt" � la racine des documents.</p>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen<div class="example"><pre>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowenDocumentRoot /var/www/example.com
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowenAlias /myapp /opt/myapp-1.2.3
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen&lt;Directory /opt/myapp-1.2.3&gt;
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowenRewriteEngine On
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowenRewriteBase /myapp/
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowenRewriteRule ^index\.html$ welcome.html
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess&lt;/Directory&gt;
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</pre></div>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</div>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
261c62b53a9c707c64c7824eed68b5463bd23e62nd<div class="directive-section"><h2><a name="RewriteCond" id="RewriteCond">RewriteCond</a> <a name="rewritecond" id="rewritecond">Directive</a></h2>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<table class="directive">
5ae30adbe59946de742ab0cd6be3b7457471a698takashi<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D�finit une condition qui devra �tre satisfaite pour que
5a58787efeb02a1c3f06569d019ad81fd2efa06endla r��criture soit effectu�e
5a58787efeb02a1c3f06569d019ad81fd2efa06end</td></tr>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code> RewriteCond
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <em>cha�ne de test</em> <em>expression de comparaison</em></code></td></tr>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_rewrite</td></tr>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</table>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>La directive <code class="directive">RewriteCond</code> permet de d�finir une
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess condition d'ex�cution d'une r�gle. Une ou plusieurs conditions
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <code class="directive">RewriteCond</code> peuvent pr�c�der une
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess directive <code class="directive"><a href="#rewriterule">RewriteRule</a></code>. La r�gle de r��criture correspondante n'est
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess ainsi ex�cut�e que si ces conditions sont satisfaites,
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <strong>et</strong> si l'URI correspond au mod�le sp�cifi� dans la
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess r�gle.</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <p><em>TestString</em> est une cha�ne qui peut contenir les
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen extensions suivantes en plus du texte simple :</p>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <ul>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <li>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <strong>r�f�rences arri�res de r�gle de r��criture</strong> :
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen ce sont des r�f�rences arri�res de la forme
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <strong><code>$N</code></strong> (0 &lt;= N &lt;= 9). $1 � $9
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess permettent d'acc�der aux parties regroup�es (entre
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess parenth�ses) du mod�le, issues de la <code>RewriteRule</code>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess concern�e par le jeu de conditions <code>RewriteCond</code>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess courant. $0 donne acc�s � l'ensemble de la cha�ne
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess correspondant au mod�le.</li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <strong>R�f�rences arri�res de condition de r��criture
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess </strong> : ce sont des r�f�rences arri�res de la forme
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <strong><code>%N</code></strong> (0 &lt;= N &lt;= 9). %1 � %9
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess permettent d'acc�der aux parties regroup�es (entre
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess parenth�ses) du mod�le, issues de la <code>RewriteRule</code>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess concern�e par le jeu de conditions <code>RewriteCond</code>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess courant. %0 donne acc�s � l'ensemble de la cha�ne
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess correspondant au mod�le.</li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>
5ae30adbe59946de742ab0cd6be3b7457471a698takashi <strong>extensions de table de r��criture</strong> :
5a58787efeb02a1c3f06569d019ad81fd2efa06end ce sont des extensions de la forme <strong><code>${nomTable:cl�|d�faut}</code></strong>. Voir la <a>href="#mapfunc"&gt;documentation sur RewriteMap</a>
5a58787efeb02a1c3f06569d019ad81fd2efa06end pour plus de d�tails.
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess </li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <strong>Variables du serveur</strong> :
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf ce sont des variables de la forme
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf <strong><code>%{</code> <em>NAME_OF_VARIABLE</em> <code>}</code></strong>,
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf o� <em>NOM_DE_VARIABLE</em> peut contenir une cha�ne issue
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess de la liste suivante :
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <table>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <tr>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <th>En-t�tes HTTP :</th> <th>connexion &amp; requ�te:</th> <th />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen </tr>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <tr>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <td>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen HTTP_USER_AGENT<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen HTTP_REFERER<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen HTTP_COOKIE<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen HTTP_FORWARDED<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen HTTP_HOST<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen HTTP_PROXY_CONNECTION<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen HTTP_ACCEPT<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen </td>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <td>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen REMOTE_ADDR<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen REMOTE_HOST<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen REMOTE_PORT<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen REMOTE_USER<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen REMOTE_IDENT<br />
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess REQUEST_METHOD<br />
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess SCRIPT_FILENAME<br />
5ae30adbe59946de742ab0cd6be3b7457471a698takashi PATH_INFO<br />
5a58787efeb02a1c3f06569d019ad81fd2efa06end QUERY_STRING<br />
5a58787efeb02a1c3f06569d019ad81fd2efa06end AUTH_TYPE<br />
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess </td>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <td />
261c62b53a9c707c64c7824eed68b5463bd23e62nd </tr>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <tr>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <th>variables internes au serveur :</th> <th>date et heure :</th> <th>sp�ciaux :</th>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen </tr>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <tr>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <td>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen DOCUMENT_ROOT<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen SERVER_ADMIN<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen SERVER_NAME<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen SERVER_ADDR<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen SERVER_PORT<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen SERVER_PROTOCOL<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen SERVER_SOFTWARE<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen </td>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <td>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess TIME_YEAR<br />
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess TIME_MON<br />
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess TIME_DAY<br />
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess TIME_HOUR<br />
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess TIME_MIN<br />
5ae30adbe59946de742ab0cd6be3b7457471a698takashi TIME_SEC<br />
5a58787efeb02a1c3f06569d019ad81fd2efa06end TIME_WDAY<br />
5a58787efeb02a1c3f06569d019ad81fd2efa06end TIME<br />
5ae30adbe59946de742ab0cd6be3b7457471a698takashi </td>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <td>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess API_VERSION<br />
261c62b53a9c707c64c7824eed68b5463bd23e62nd THE_REQUEST<br />
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess REQUEST_URI<br />
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess REQUEST_FILENAME<br />
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess IS_SUBREQ<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen HTTPS<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen REQUEST_SCHEME<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen </td>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen </tr>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen </table>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <p>Ces variables correspondent toutes aux en-t�tes MIME
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen HTTP de m�mes noms, au variables C du serveur HTTP Apache, ou
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen aux champs <code>struct tm</code> du syst�me Unix. La
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen plupart d'entre elles sont document�es ailleurs dans le
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen manuel ou dans la sp�cification CGI.</p>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <p>SERVER_NAME et SERVER_PORT d�pendent respectivement
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen des valeurs des directives <code class="directive"><a href="/mod/core.html#usecanonicalname">UseCanonicalName</a></code> et <code class="directive"><a href="/mod/core.html#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></code>.</p>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <p>Parmi les variables
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen sp�cifiques � mod_rewrite, ou trouve les suivantes :</p>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <div class="note">
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <dl>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <dt><code>IS_SUBREQ</code></dt>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <dd>Contient le texte "true" si la requ�te en cours
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen de traitement est une sous-requ�te, "false" dans le
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen cas contraire. Une sous-requ�te est g�n�r�e quand un
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen module a besoin de se r�f�rer � des fichiers ou URIs
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen addidionnels pour pouvoir mener � bien sa t�che.</dd>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <dt><code>API_VERSION</code></dt>
5ae30adbe59946de742ab0cd6be3b7457471a698takashi
5a58787efeb02a1c3f06569d019ad81fd2efa06end <dd>C'est la version de l'API des modules Apache httpd
5a58787efeb02a1c3f06569d019ad81fd2efa06end (l'interface interne entre le serveur et les modules)
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess pour la construction courante de httpd, telle qu'elle
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess est d�finie dans include/ap_mmn.h. La version de l'API
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf des modules correspond � la version du serveur Apache
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf httpd
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess utilis� (par exemple, pour la version 1.3.14 d'Apache
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen httpd,
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen il s'agit de la version 19990320:10), mais int�resse
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen principalement les auteurs de modules.</dd>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <dt><code>THE_REQUEST</code></dt>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <dd>La ligne de requ�te HTTP compl�te envoy�e par le
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen navigateur au serveur (par exemple, "<code>GET
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen /index.html HTTP/1.1</code>"), � l'exclusion de tout
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen en-t�te ajout� par le navigateur. Cette
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen valeur n'a pas �t� d�s�chapp�e (d�cod�e), � la
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen diff�rence de la plupart des variables suivantes.</dd>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <dt><code>REQUEST_URI</code></dt>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <dd>La partie chemin de l'URI de la requ�te, comme
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen "/index.html". En particulier, ceci exclut la cha�ne
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen de param�tres qui est quant � elle disponible via sa
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen propre variable <code>QUERY_STRING</code>.</dd>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <dt><code>REQUEST_FILENAME</code></dt>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <dd>Le chemin complet local au syst�me de fichiers
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen du fichier ou du script correspondant
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen � la requ�te, s'il a d�j� �t� d�termin� par le serveur
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen au moment o� on y fait r�f�rence. Dans le cas
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen contraire, et en particulier dans le cas d'un serveur
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen virtuel, <code>REQUEST_FILENAME</code> contient la
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess valeur de <code>REQUEST_URI</code>.</dd>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
5ae30adbe59946de742ab0cd6be3b7457471a698takashi <dt><code>HTTPS</code></dt>
5a58787efeb02a1c3f06569d019ad81fd2efa06end
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen <dd>Contient le texte "on" si la connexion
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen utilise SSL/TLS, "off" dans le cas contraire
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen (Cette variable peut �tre utilis�e sans probl�me, que
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> soit charg� ou non.</dd>
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen <dt><code>REQUEST_SCHEME</code></dt>
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen <dd>Contient le protocole de la requ�te (en g�n�ral
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen "http" ou "https"). La valeur peut �tre modifi�e par
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen la directive <code class="directive"><a href="/mod/core.html#servername">ServerName</a></code>.</dd>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen </dl>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen</div>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen </li>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen </ul>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <p>Si la <em>cha�ne de test</em> contient la valeur sp�ciale
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <code>expr</code>, <em>expression de comparaison</em> sera trait�
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen en tant qu'expression rationnelle de type <a href="/expr.html">ap_expr</a>.</p>
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen <p>Autres points � conna�tre ::</p>
f8dee27891059abb09ff5ca3fc5434f5719d22a0rbowen <ol>
5a58787efeb02a1c3f06569d019ad81fd2efa06end <li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>Les variables <code>SCRIPT_FILENAME</code> et
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <code>REQUEST_FILENAME</code> contiennent toutes deux la valeur
5ae30adbe59946de742ab0cd6be3b7457471a698takashi du champ <code>filename</code> de la
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess structure interne <code>request_rec</code>du serveur HTTP Apache.
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess Le premier nom correspond au nom de variable bien connu CGI,
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess alors que le second est l'�quivalent de REQUEST_URI (qui
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess contient la valeur du champ <code>uri</code> de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <code>request_rec</code>).</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>Si une substitution intervient et si la r��criture se
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen poursuit, la valeur des deux variables sera mise � jour en
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen cons�quence.</p>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <p>Dans le contexte du serveur principal (c'est � dire avant que
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen la requ�te ne soit mise en correspondance avec le syst�me de
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen fichiers), SCRIPT_FILENAME et REQUEST_FILENAME ne peuvent pas
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess contenir le chemin entier dans le syst�me de fichiers local car
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess ce chemin b'est pas connu � ce stade du traitement. Dans ce cas,
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess les deux variables contiendront la valeur de REQUEST_URI. Pour
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess obtenir le chemin complet de la requ�te dans le syst�me de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess fichiers local dans le contexte du serveur principal, utilisez une
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess r�f�rence avant � base d'URL
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <code>%{LA-U:REQUEST_FILENAME}</code> pour d�terminer la valeur
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess finale de REQUEST_FILENAME.</p></li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <code>%{ENV:<em>variable</em>}</code>, o� <em>variable</em> peut
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess correspondre � une variable d'environnement quelconque.</li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <code>%{ENV:variable}</code> est aussi disponible, o�
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <em>variable</em> peut correspondre � toute variable
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess d'environnement. Peut �tre consult� via des structures internes
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess d'Apache httpd et (si on ne les trouve pas ici) via la fonction
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <code>getenv()</code> � partir du processus du serveur Apache
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess httpd.</li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>Que <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> soit charg� ou non, on peut
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen utiliser <code>%{SSL:variable}</code>, o� <em>variable</em>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen peut �tre remplac� par le nom d'une
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <a href="mod_ssl.html#envvars">variable
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen d'environnement SSL</a> . Si <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> n'est pas
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen charg�, cette variable contiendra toujours une cha�ne vide.
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen Exemple : <code>%{SSL:SSL_CIPHER_USEKEYSIZE}</code> pourra
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen contenir la valeur <code>128</code>.</li>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <li>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen On peut utiliser <code>%{HTTP:en-t�te}</code>, o�
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <em>en-t�te</em> peut correspondre � tout nom d'en-t�te MIME
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess HTTP, pour extraire la valeur d'un en-t�te envoy� dans la
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess requ�te HTTP. Par exemple, <code>%{HTTP:Proxy-Connection}</code>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess contiendra la valeur de l'en-t�te HTTP
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess "<code>Proxy-Connection:</code>".
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess Si on utilise un en-t�te HTTP
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess dans une condition, et si cette condition est �valu�e �
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <code>vrai</code> pour la requ�te, cet en-t�te sera ajout� � l'en-t�te Vary de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess la r�ponse. Il ne le sera pas si la condition est �valu�e �
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <code>faux</code>. L'ajout de l'en-t�te HTTP � l'en-t�te Vary
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess est n�cessaire � une mise en cache appropri�e.
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>Il faut garder � l'esprit que les conditions suivent une
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess logique de cout-circuit si le drapeau
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess '<strong><code>ornext|OR</code></strong>' est utilis�, et que de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess ce fait, certaines d'entre elles ne seront pas �valu�es.</p>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen </li>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <li>A des fins de r�f�rence avant, on peut utiliser,
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <code>%{LA-U:variable}</code>, qui
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen permet d'effectuer une sous-requ�te interne � base d'URL, afin
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen de d�terminer la valeur finale de <em>variable</em>. Ceci permet
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess d'acc�der � la valeur d'une variable pour la r��criture inconnue
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess � ce stade du traitement, mais qui sera d�finie au
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess cours d'une phase ult�rieure.
d5b8072762cf428c4c703ed7054ae948d41c910bnd <p>Par exemple, pour effectuer une r��criture d�pendant de la
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess variable <code>REMOTE_USER</code> dans le contexte du serveur
3c29010ad1a706e8d5931b250f1bc751e0dde676rbowen principal (fichier <code>httpd.conf</code>), vous devez utiliser
3c29010ad1a706e8d5931b250f1bc751e0dde676rbowen <code>%{LA-U:REMOTE_USER}</code> - cette variable est d�finie
3c29010ad1a706e8d5931b250f1bc751e0dde676rbowen par la phase d'autorisation qui intervient <em>apr�s</em> la
3c29010ad1a706e8d5931b250f1bc751e0dde676rbowen phase de traduction d'URL (pendant laquelle mod_rewrite op�re).</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>Par contre, comme mod_rewrite impl�mente son contexte de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess r�pertoire (fichier <code>.htaccess</code>) via la phase Fixup
5ae30adbe59946de742ab0cd6be3b7457471a698takashi de l'API, et comme la phase d'autorisation intervient
5a58787efeb02a1c3f06569d019ad81fd2efa06end <em>avant</em> cette derni�re, vous pouvez vous contenter
5a58787efeb02a1c3f06569d019ad81fd2efa06end d'utiliser <code>%{REMOTE_USER}</code> dans ce contexte.</p></li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <code>%{LA-F:variable}</code> peut �tre utilis�e pour effectuer
261c62b53a9c707c64c7824eed68b5463bd23e62nd une sous-requ�te interne (bas�e sur le nom de fichier), afin de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess d�terminer la valeur finale de <em>variable</em>. La plupart du
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess temps, elle est identique � LA-U (voir ci-dessus).</li>
a795ca2487c774aa6fe75c765a2bf17f969f7af7nd </ol>
a795ca2487c774aa6fe75c765a2bf17f969f7af7nd
a795ca2487c774aa6fe75c765a2bf17f969f7af7nd
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p><em>expression de comparaison</em> est une expression
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess rationnelle qui est appliqu�e � l'instance actuelle de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <em>cha�ne de test</em>. <em>cha�ne de test</em> est d'abord
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess �valu�e, puis compar�e �
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen l'<em>expression de comparaison</em>.</p>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <p><em>expression de comparaison</em> est en g�n�ral une
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <em>expression rationnelle compatible perl</em>, mais vous
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen disposez des syntaxes suppl�mentaires suivantes pour effectuer
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen d'autres tests utiles sur <em>cha�ne de test</em> :
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen </p>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <ol>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <li>Vous pouvez pr�fixer l'expression avec un caract�re
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen '<code>!</code>' (point d'exclamation) pour indiquer une
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen expression de <strong>non</strong>-correspondance.</li>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <li>Vous pouvez effectuer des comparaisons lexicographiques de
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen cha�nes :
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <ul>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <li>'<strong>&lt;expression</strong>' (inf�rieur au sens
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess lexicographique)<br />
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess Traite l'<em>expression</em> comme une cha�ne de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess caract�res et la compare lexicographiquement �
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <em>cha�ne de test</em>. La condition est satisfaite si
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <em>cha�ne de test</em> est inf�rieure au sens
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess lexicographique � l'<em>expression</em>.</li>
5ae30adbe59946de742ab0cd6be3b7457471a698takashi
5a58787efeb02a1c3f06569d019ad81fd2efa06end <li>'<strong>&gt;expression</strong>' (sup�rieur au sens
5a58787efeb02a1c3f06569d019ad81fd2efa06end lexicographique)<br />
5ae30adbe59946de742ab0cd6be3b7457471a698takashi Traite l'<em>expression</em> comme une cha�ne de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess caract�res et la compare lexicographiquement �
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <em>cha�ne de test</em>. La condition est satisfaite si
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <em>cha�ne de test</em> est sup�rieure au sens
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess lexicographique � l'<em>expression</em>.</li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>'<strong>=expression</strong>' (�gal au sens
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess lexicographique)<br />
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess Traite l'<em>expression</em> comme une cha�ne de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess caract�res et la compare lexicographiquement �
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <em>cha�ne de test</em>. La condition est satisfaite si
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <em>cha�ne de test</em> est �gale au sens
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen lexicographique � l'<em>expression</em> (les deux cha�nes
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen sont exactement identiques, caract�re pour caract�re). Si
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <em>expression</em> est <code>""</code> (deux guillemets),
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <em>cha�ne de test</em> est compar�e � la cha�ne vide.</li>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <li>'<strong>&lt;=expression de comparaison</strong>' (inf�rieur ou �gal �
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen au sens lexicographique)<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen Consid�re l'<em>expression de comparaison</em> comme une
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen cha�ne de caract�res et la compare au sens lexicographique �
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen la <em>cha�ne de test</em>. Vrai si <em>cha�ne de test</em>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen pr�c�de lexicographiquement <em>expression de comparaison</em>, ou est
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen �gale � <em>expression de comparaison</em> (les deux cha�nes
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen sont identiques, caract�re pour caract�re).</li>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <li>'<strong>&gt;=expression de comparaison</strong>'
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen (sup�rieur ou �gal � au sens lexicographique)<br />
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen Consid�re l'<em>expression de comparaison</em> comme une
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen cha�ne de caract�res et la compare au sens lexicographique �
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen la <em>cha�ne de test</em>. Vrai si <em>cha�ne de test</em>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen suit lexicographiquement <em>expression de comparaison</em>, ou est
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen �gale � <em>expression de comparaison</em> (les deux cha�nes
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen sont identiques, caract�re pour caract�re).</li>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen </ul></li>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen <li>
c3c006c28c5b03892ccaef6e4d2cbb15a13a2072rbowen Vous pouvez effectuer des comparaisons d'entiers :
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <ul>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>'<strong>-eq</strong>' (est num�riquement �gal �)<br />
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess La <em>cha�ne de test</em> est consid�r�e comme un entier,
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess et est compar�e num�riquement � l'<em>expression de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess comparaison</em>. Vrai si les deux expressions sont
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess num�riquement �gales.</li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>'<strong>-ge</strong>' (est num�riquement sup�rieur ou
a795ca2487c774aa6fe75c765a2bf17f969f7af7nd �gal �)<br />
a795ca2487c774aa6fe75c765a2bf17f969f7af7nd La <em>cha�ne de test</em> est consid�r�e comme un entier,
a795ca2487c774aa6fe75c765a2bf17f969f7af7nd et est compar�e num�riquement � l'<em>expression de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess comparaison</em>. Vrai si <em>cha�ne de test</em> est
a795ca2487c774aa6fe75c765a2bf17f969f7af7nd num�riquement
a795ca2487c774aa6fe75c765a2bf17f969f7af7nd sup�rieure ou �gale � <em>expression de comparaison</em>.</li>
a795ca2487c774aa6fe75c765a2bf17f969f7af7nd
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>'<strong>-gt</strong>' (est num�riquement sup�rieur �)<br />
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess La <em>cha�ne de test</em> est consid�r�e comme un entier,
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess et est compar�e num�riquement � l'<em>expression de
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess comparaison</em>. Vrai si <em>cha�ne de test</em> est
5ae30adbe59946de742ab0cd6be3b7457471a698takashi num�riquement
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd sup�rieure � <em>expression de comparaison</em>.</li>
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd
d05d0eb4ae6d2a5e513fc3bf2555ce33da416634nd <li>'<strong>-le</strong>' (est num�riquement inf�rieur ou
7f5b59ccc63c0c0e3e678a168f09ee6a2f51f9d0nd �gal �)<br />
4b3a8afbfcea8b265d179a122bf40dfedd1ce280takashi La <em>cha�ne de test</em> est consid�r�e comme un entier,
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung et est compar�e num�riquement � l'<em>expression de
727872d18412fc021f03969b8641810d8896820bhumbedooh comparaison</em>. Vrai si <em>cha�ne de test</em> est
0d0ba3a410038e179b695446bb149cce6264e0abnd num�riquement
727872d18412fc021f03969b8641810d8896820bhumbedooh inf�rieure ou �gale � <em>expression de comparaison</em>.
cc7e1025de9ac63bd4db6fe7f71c158b2cf09fe4humbedooh Attention � la confusion avec le drapeau <strong>-l</strong>
0d0ba3a410038e179b695446bb149cce6264e0abnd en utilisant la variante the <strong>-L</strong> ou
cc7e1025de9ac63bd4db6fe7f71c158b2cf09fe4humbedooh <strong>-h</strong>.</li>
727872d18412fc021f03969b8641810d8896820bhumbedooh
0d0ba3a410038e179b695446bb149cce6264e0abnd <li>'<strong>-lt</strong>' (est num�riquement inf�rieur �)<br />
0d0ba3a410038e179b695446bb149cce6264e0abnd La <em>cha�ne de test</em> est consid�r�e comme un entier,
0d0ba3a410038e179b695446bb149cce6264e0abnd et est compar�e num�riquement � l'<em>expression de
ac082aefa89416cbdc9a1836eaf3bed9698201c8humbedooh comparaison</em>. Vrai si <em>cha�ne de test</em> est
0d0ba3a410038e179b695446bb149cce6264e0abnd num�riquement
0d0ba3a410038e179b695446bb149cce6264e0abnd inf�rieure � <em>expression de comparaison</em>.
0d0ba3a410038e179b695446bb149cce6264e0abnd Attention � la confusion avec le drapeau <strong>-l</strong>
727872d18412fc021f03969b8641810d8896820bhumbedooh en utilisant la variante the <strong>-L</strong> ou
0d0ba3a410038e179b695446bb149cce6264e0abnd <strong>-h</strong>.</li>
0d0ba3a410038e179b695446bb149cce6264e0abnd
30471a4650391f57975f60bbb6e4a90be7b284bfhumbedooh </ul>
5effc8b39fae5cd169d17f342bfc265705840014rbowen </li>
d229f940abfb2490dee17979e9a5ff31b7012eb5rbowen
0d0ba3a410038e179b695446bb149cce6264e0abnd <li>Vous pouvez effectuer diff�rents tests sur les attributs de
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd fichier :
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd <ul>
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd
5a58787efeb02a1c3f06569d019ad81fd2efa06end <li>'<strong>-d</strong>' (est un r�pertoire -
<strong>d</strong>irectory)<br />
Traite <em>cha�ne de test</em> comme un chemin et v�rifie
s'il existe ou pas, et s'il s'agit d'un r�pertoire.</li>
<li>'<strong>-f</strong>' (est un
<strong>f</strong>ichier r�gulier)<br />
Traite <em>cha�ne de test</em> comme un chemin et v�rifie
s'il existe ou pas, et s'il s'agit d'un fichier r�gulier.</li>
<li>'<strong>-F</strong>' (test de l'existence d'un fichier
via une sous-requ�te)<br />
V�rifie si <em>cha�ne de test</em> est un fichier valide,
accessible � travers tous les contr�les d'acc�s du serveur
actuellement configur�s pour ce chemin. C'est une
sous-requ�te interne qui effectue cette v�rification - �
utiliser avec pr�cautions car les performances du serveur
peuvent s'en trouver affect�es !</li>
<li>'<strong>-H</strong>' (est un lien symbolique, selon la
convention bash)<br />
Voir <strong>-l</strong>.</li>
<li>'<strong>-l</strong>' (est un lien symbolique)<br />
Consid�re la <em>cha�ne de test</em> comme un chemin et
v�rifie son existence et si elle est un lien symbolique. On
peut aussi utiliser la convention bash <strong>-L</strong>
ou <strong>-h</strong> lorsqu'il y a risque de confusion
avec les tests <strong>-lt</strong> ou <strong>-le</strong>.</li>
<li>'<strong>-L</strong>' (est un lien symbolique, selon la
convention bash)<br />
Voir <strong>-l</strong>.</li>
<li>'<strong>-s</strong>' (est un fichier r�gulier d'une
certaine taille)<br />
Consid�re la <em>cha�ne de test</em> comme un chemin et
v�rifie son existence et si elle est un fichier r�gulier
d'une taille sup�rieure � z�ro.</li>
<li>'<strong>-U</strong>' (test de l'existence d'une
<strong>U</strong>RL via une sous-requ�te)<br />
V�rifie si <em>cha�ne de test</em> est une URL valide,
accessible � travers tous les contr�les d'acc�s du serveur
actuellement configur�s pour ce chemin. C'est une
sous-requ�te interne qui effectue cette v�rification - �
utiliser avec pr�cautions car les performances du serveur
peuvent s'en trouver affect�es !</li>
<li>'<strong>-x</strong>' (a l'attribut d'ex�cution positionn�)<br />
Consid�re la <em>cha�ne de test</em> comme un chemin et
v�rifie son existence et si elle a son attribut d'ex�cution
positionn�. Ce positionnement est d�termin� en fonction de
l'OS sous-jacent.</li>
</ul>
<div class="note"><h3>Note :</h3>
Tous ces tests peuvent aussi �tre pr�fix�s par un point
d'exclamation ('!') pour inverser leur signification.
</div>
</li>
<li>
<p>Si la <em>cha�ne de test</em> contient la valeur sp�ciale
<code>expr</code>, la <em>cha�ne de comparaison</em> sera
trait�e en tant qu'expression rationnelle de type <a href="/expr.html">ap_expr</a>.</p>
<p>
Dans l'exemple ci-dessous, on utilise <code>-strmatch</code>
pour comparer le <code>REFERER</code> avec le nom d'h�te du
site afin de bloquer le hotlinking (r�f�rencement direct)
non d�sir�.
</p>
<div class="example"><p><code>
RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'"<br />
RewriteRule ^/images - [F]
</code></p></div>
</li>
<li>Vous pouvez aussi d�finir certains drapeaux pour
l'<em>expression de comparaison</em> en ajoutant ces
<strong><code>[</code><em>drapeaux</em><code>]</code></strong>
comme troisi�me argument de la directive
<code>RewriteCond</code>, o� <em>drapeaux</em> est un
sous-ensemble s�par� par des virgules des drapeaux suivants :
<ul>
<li>'<strong><code>nocase|NC</code></strong>'
(<strong>n</strong>o <strong>c</strong>ase)<br />
Rend le test insensible � la casse - il n'est pas fait de
distinction entre majuscules et minuscules, � la fois dans le
d�veloppement de <em>cha�ne de test</em> et dans
<em>expression de comparaison</em>. Ce drapeau n'est pris en
compte que lors d'une comparaison entre <em>cha�ne de test</em>
et <em>expression de comparaison</em>. Il ne l'est pas pour les
v�rification par sous-requ�tes ou sur le syst�me de
fichiers.</li>
<li>
'<strong><code>ornext|OR</code></strong>'
(<strong>ou</strong> condition suivante)<br />
Permet de cha�ner les conditions de r�gles avec un OU au
lieu du AND implicite. Exemple typique :
<div class="example"><pre>
RewriteCond %{REMOTE_HOST} ^host1 [OR]
RewriteCond %{REMOTE_HOST} ^host2 [OR]
RewriteCond %{REMOTE_HOST} ^host3
RewriteRule ...r�gles concernant tous ces h�tes...
</pre></div>
Sans ce drapeau, les paires
condition/r�gle devraient �tre �crites trois fois.
</li>
<li>'<strong><code>novary|NV</code></strong>'
(<strong>n</strong>o <strong>v</strong>ary)<br />
Si la condition contient un en-t�te HTTP, ce drapeau emp�che
ce dernier d'�tre ajout� � l'en-t�te Vary de la r�ponse. <br />
L'utilisation de ce drapeau peut provoquer une mise en cache
incorrecte de la r�ponse, si la repr�sentation de cette r�ponse
varie avec la valeur de l'en-t�te consid�r�. Ce drapeau ne
devrait donc �tre utilis� que si l'on ma�trise parfaitement le
fonctionnement de l'en-t�te Vary.
</li>
</ul>
</li>
</ol>
<p><strong>Exemple :</strong></p>
<p>Pour r��crire la page d'accueil d'un site en fonction de
l'en-t�te ``<code>User-Agent:</code>'' de la requ�te, vous
pouvez utiliser ce qui suit : </p>
<div class="example"><pre>
RewriteCond %{HTTP_USER_AGENT} ^Mozilla
RewriteRule ^/$ /homepage.max.html [L]
RewriteCond %{HTTP_USER_AGENT} ^Lynx
RewriteRule ^/$ /homepage.min.html [L]
RewriteRule ^/$ /homepage.std.html [L]
</pre></div>
<p>Explications : si vous utilisez un navigateur
(Netscape Navigator, Mozilla etc) qui s'identifie comme
'Mozilla', vous acc�derez � la page d'accueil max (qui
peut contenir des frames, ou d'autres ressources
particuli�res).
Si vous utilisez le navigateur Lynx (qui est un navigateur
en mode texte), vous acc�derez � une page d'accueil min
(qui peut �tre une version con�ue pour une navigation simple
bas�e sur le texte).
Si aucune de ces conditions n'est satisfaite (vous utilisez tout
autre navigateur, ou votre navigateur s'identifie de mani�re non
standard), vous acc�derez � la page d'accueil std
(standard).</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="RewriteEngine" id="RewriteEngine">RewriteEngine</a> <a name="rewriteengine" id="rewriteengine">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active ou d�sactive l'ex�cution du
moteur de r��criture</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RewriteEngine on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D�faut:</a></th><td><code>RewriteEngine off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_rewrite</td></tr>
</table>
<p>La directive <code class="directive">RewriteEngine</code> active ou
d�sactive l'ex�cution du moteur de r��criture. Si sa valeur est
<code>off</code>, ce module n'ex�cutera aucun traitement et ne
mettra pas � jour les variables d'environnement
<code>SCRIPT_URx</code>.</p>
<p>Pour d�sactiver le module, il vaut mieux utiliser cette
directive que commenter toutes les directives <code class="directive"><a href="#rewriterule">RewriteRule</a></code> !</p>
<p>Notez que les h�tes virtuels n'h�ritent pas des
configurations de r��criture. Ceci implique que vous devez
ins�rer une directive <code>RewriteEngine on</code> dans chaque
h�te virtuel pour lequel vous souhaitez utiliser des r�gles
de r��criture.</p>
<p>Les directives <code class="directive">RewriteMap</code> du type
<code>prg</code> ne sont pas prises en compte au cours de
l'initialisation du serveur si elle ont �t� d�finies dans un
contexte o� la directive <code class="directive">RewriteEngine</code> n'a
pas �t� d�finie � <code>on</code>.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="RewriteMap" id="RewriteMap">RewriteMap</a> <a name="rewritemap" id="rewritemap">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D�finit une fonction de mise en correspondance pour la
recherche de mots-cl�s</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RewriteMap <em>nom de la correspondance</em> <em>type de
correspondance</em>:<em>source de la correspondance</em>
</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_rewrite</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td>Il est possible de choisir entre plusieurs types de
bases de donn�es depuis la version 2.0.41 du serveur HTTP Apache</td></tr>
</table>
<p>La directive <code class="directive">RewriteMap</code> d�finit une
<em>Table de correspondance pour la r��criture</em> que les
fonctions de mise en correspondance
peuvent utiliser dans les cha�nes de substitution des r�gles
pour ins�rer/substituer des champs en recherchant des mots-cl�s.
La source utilis�e pour cette recherche peut �tre de plusieurs
types.</p>
<p><a id="mapfunc" name="mapfunc"><em>nom de la
correspondance</em></a> est le nom de la table de correspondance
et servira � sp�cifier une fonction de mise en correspondance
pour les cha�nes de substitution d'une r�gle de r��criture selon
une des constructions suivantes :</p>
<p class="indent">
<strong><code>${</code> <em>nom de la
correspondance</em> <code>:</code>
<em>mot-cl�</em> <code>}</code><br />
<code>${</code> <em>nom de la
correspondance</em> <code>:</code>
<em>mot-cl�</em> <code>|</code> <em>valeur par d�faut</em>
<code>}</code></strong>
</p>
<p>Lorsqu'une telle construction est rencontr�e, la table de
correspondance <em>Nom de la correspondance</em> est consult�e
et la cl� <em>mot-cl�</em> recherch�e. Si la cl� est trouv�e, la
construction est remplac�e par
la <em>valeur de remplacement</em>. Si la cl� n'est pas trouv�e,
elle est remplac�e par la <em>valeur par d�faut</em>, ou par une
cha�ne vide si aucune <em>valeur par d�faut</em> n'est
sp�cifi�e. La valeur vide se comporte comme si la
cl� �tait absente ; il est donc impossible de distinguer une
valeur vide d'une absence de cl�.</p>
<p>Par exemple, vous pouvez d�finir une directive
<code class="directive">RewriteMap</code> comme suit </p>
<div class="example"><p><code>
RewriteMap map-exemple txt:/chemin/vers/fichier/map.txt
</code></p></div>
<p>Vous pourrez ensuite utiliser cette table dans une
directive <code class="directive">RewriteRule</code> comme suit :</p>
<div class="example"><p><code>
RewriteRule ^/ex/(.*) ${map-exemple:$1}
</code></p></div>
<p>Les combinaisons suivantes pour <em>type de correspondance</em>
et <em>source de la correspondance</em>
peuvent �tre utilis�es :</p>
<dl>
<dt>txt</dt>
<dd>Un fichier texte contenant des paires cl�-valeur s�par�es
par des espaces, une paire par ligne (<a href="/rewrite/rewritemap.html#txt">D�tails ...</a>).</dd>
<dt>rnd</dt>
<dd>S�lection al�atoire d'une entr�e depuis un fichier texte (<a href="/rewrite/rewritemap.html#rnd">D�tails ...</a>).</dd>
<dt>dbm</dt>
<dd>Recherche une entr�e dans un fichier dbm contenant des
paires nom-valeur. Le condens� hash est �labor� � partir d'un
format de fichier texte via l'utilitaire <code><a href="/programs/httxt2dbm.html">httxt2dbm</a></code> (<a href="/rewrite/rewritemap.html#dbm">D�tails ...</a>).</dd>
<dt>int</dt>
<dd>Une des quatre fonctions internes disponibles que fournit
<code>RewriteMap</code>: toupper, tolower, escape ou unescape
(<a href="/rewrite/rewritemap.html#int">D�tails ...</a>).</dd>
<dt>prg</dt>
<dd>Appelle un programme externe ou un script pour effectuer la
r��criture (<a href="/rewrite/rewritemap.html#int">D�tails
...</a>).</dd>
<dt>dbd or fastdbd</dt>
<dd>Une commande SQL SELECT � ex�cuter pour rechercher la cible
de r��criture (<a href="/rewrite/rewritemap.html#int">D�tails
...</a>).</dd>
</dl>
<p>Vous trouverez plus de d�tails et de nombreux exemples dans le <a href="/rewrite/rewritemap.html">RewriteMap HowTo</a>.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="RewriteOptions" id="RewriteOptions">RewriteOptions</a> <a name="rewriteoptions" id="rewriteoptions">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure certaines options sp�ciales
pour le moteur de r��criture</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RewriteOptions <var>Options</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_rewrite</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td><code>MaxRedirects</code> n'est plus disponible depuis
la version version 2.1</td></tr>
</table>
<p>La directive <code class="directive">RewriteOptions</code> d�finit
certaines options sp�ciales pour la configuration au niveau du
serveur ou du r�pertoire. La cha�ne de caract�res <em>Option</em>
ne peut actuellement prendre qu'une des valeurs suivantes :</p>
<dl>
<dt><code>Inherit</code></dt>
<dd>
<p>Ceci force la configuration locale � h�riter de la
configuration du niveau sup�rieur. Dans le contexte des h�tes
virtuels, cela signifie que les correspondances, conditions et
r�gles du serveur principal sont h�rit�es. Dans le contexte des
r�pertoires, cela signifie que les conditions et r�gles de la
configuration <code>.htaccess</code> ou les sections <code class="directive"><a href="/mod/core.html#directory">&lt;Directory&gt;</a></code> du r�pertoire
parent sont h�rit�es. Les r�gles h�rit�es sont virtuellement
copi�es dans la section o� cette directive est utilis�e. Si elles
sont utilis�es avec des r�gles locales, les r�gles h�rit�es sont
plac�es apr�s ces derni�res. La place de cette directive - avant
ou apr�s les r�gles locales - n'a aucune influence sur ce
comportement. Si des r�gles locales ont forc� l'arr�t de la
r��criture, les r�gles h�rit�es ne seront pas trait�es.</p>
<div class="warning">
Les r�gles h�rit�es du niveau parent sont appliqu�es
<strong>after</strong> apr�s les r�gles sp�cifi�es dans le niveau
enfant.
</div>
</dd>
<dt><code>InheritBefore</code></dt>
<dd>
<p>M�me effet que l'option <code>Inherit</code> ci-dessus, mais
les r�gles sp�cifi�es dans le niveau parent s'appliquent
<strong>avant</strong> les r�gles sp�cifi�es dans le niveau
enfant. Disponible depuis la version 2.3.10 du serveur HTTP
Apache.</p>
</dd>
<dt><code>AllowNoSlash</code></dt>
<dd>
<p>Par d�faut, <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code> ignore les URLs qui
correspondent � un r�pertoire sur disque, mais ne comportent pas
de slash final, afin que le module <code class="module"><a href="/mod/mod_dir.html">mod_dir</a></code>
redirige le client vers l'URL canonique avec un slash final.</p>
<p>Lorsque la directive <code class="directive"><a href="/mod/mod_dir.html#directoryslash">DirectorySlash</a></code> est d�finie � off, il
est possible de sp�cifier l'option <code>AllowNoSlash</code> pour
s'assurer que les r�gles de r��criture ne soient plus ignor�es.
Si on le souhaite, cette option permet de faire s'appliquer des
r�gles de r��criture qui correspondent � un r�pertoire sans slash
final au sein de fichiers .htaccess. Elle est disponible �
partir de la version 2.4.0 du serveur HTTP Apache.</p>
</dd>
</dl>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="RewriteRule" id="RewriteRule">RewriteRule</a> <a name="rewriterule" id="rewriterule">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D�finit les r�gles pour le moteur de r��criture</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RewriteRule
<em>Mod�le</em> <em>Substitution</em> [<em>drapeaux</em>]</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_rewrite</td></tr>
</table>
<p>La directive <code class="directive">RewriteRule</code> est le
v�ritable cheval de trait de la r��criture. La directive peut
appara�tre plusieurs fois, chaque instance d�finissant une
r�gle de r��criture particuli�re. L'ordre dans lequel ces r�gles
sont d�finies est important - il s'agit de l'ordre dans lequel
les r�gles seront appliqu�es au cours du processus de
r��criture.</p>
<p><a id="patterns" name="patterns"><em>Mod�le</em></a> est une
<a id="regexp" name="regexp">expression rationnelle</a>
compatible perl. Dans la premi�re r�gle de r��criture,
l'expression est compar�e au (%-decoded)
<a href="/directive-dict.html#Syntax">chemin de l'URL</a> (ou au
<a href="/directive-dict.html#Syntax">chemin fichier</a>, en
fonction du contexte) de la
requ�te. Les expressions suivantes sont compar�es � la sortie de
la derni�re r�gle de r��criture qui
correspondait.</p>
<div class="note"><h3><a id="what_is_matched" name="what_is_matched">Qu'est-ce qui est compar� ?</a></h3>
<p>Dans un contexte de serveur virtuel <code class="directive"><a href="/mod/core.html#virtualhost">VirtualHost</a></code>, le <em>mod�le</em> est tout
d'abord compar� � la portion de l'URL situ�e entre le nom d'h�te
�ventuellement accompagn� du port, et la cha�ne de param�tres (par
exemple "/app1/index.html").</p>
<p>Dans les contextes de r�pertoire <code class="directive"><a href="/mod/core.html#directory">Directory</a></code> et htaccess, le
<em>mod�le</em> est tout d'abord compar� au chemin du <em>syst�me
de fichiers</em>, apr�s suppression du pr�fixe ou chemin de base
ayant conduit le serveur vers la r�gle <code class="directive">RewriteRule</code> (par
exemple "app1/index.html" ou
"index.html" selon l'endroit o� les directives sont d�finies).</p>
<p>Si vous souhaitez faire une comparaison sur le nom
d'h�te, le port, ou la cha�ne de requ�te, utilisez une
directive <code class="directive"><a href="#rewritecond">RewriteCond</a></code>
comportant respectivement les variables
<code>%{HTTP_HOST}</code>, <code>%{SERVER_PORT}</code>, ou
<code>%{QUERY_STRING}</code>.</p>
</div>
<div class="note"><h3>R��critures dans un contexte de r�pertoire</h3>
<ul>
<li>L'utilisation du moteur de r��criture dans les
fichiers <a href="/howto/htaccess.html">.htaccess</a> et les sections
<code class="directive"><a href="/mod/core.html#directory">&lt;Directory&gt;</a></code> est un peu plus
complexe.</li>
<li>Pour activer le moteur de r��criture dans ces contextes, vous devez
d�finir "<code>RewriteEngine On</code>" <strong>et</strong>
"<code>Options FollowSymLinks</code>". Si l'administrateur a d�sactiv�
la possibilit� de modifier l'option <code>FollowSymLinks</code> au
niveau du r�pertoire d'un utilisateur, vous ne pouvez pas utiliser le
moteur de r��criture. Cette restriction a �t� instaur�e � des fins de
s�curit�.</li>
<li>Lorsqu'on utilise le moteur de r��criture dans un fichier
<code>.htaccess</code>, le chemin de base du r�pertoire courant (qui est
toujours le m�me pour ce m�me r�pertoire) est automatiquement
<em>supprim�</em> au cours de la comparaison avec le mod�le de la r�gle
de r��criture, et automatiquement <em>ajout�</em> lorsqu'une
substitution relative (ne d�butant pas par un slash ou un nom de
protocole) arrive � la fin d'un jeu de r�gles. Voir la directive
<code class="directive"><a href="#rewritebase">RewriteBase</a></code> pour plus de
d�tails � propos de l'ajout du pr�fixe apr�s les substitutions
relatives.</li>
<li>Si vous souhaitez effectuer une comparaison en prenant en compte
l'int�gralit� du
chemin de l'URL dans un contexte de r�pertoire (htaccess), vous devez
utiliser la variable <code>%{REQUEST_URI}</code> dans la directive
<code class="directive">RewriteCond</code>.</li>
<li>Le prefixe supprim� se termine toujours par un slash, ce qui
signifie que la comparaison s'effectue avec une cha�ne qui ne comporte
<em>jamais</em> de slash de d�but. Ainsi, un <em>mod�le</em> contenant
<code>^/</code> ne correspondra jamais dans un contexte de r�pertoire.</li>
<li>Bien que les r�gles de r��criture soient permises du point de vue de
la syntaxe dans les sections <code class="directive"><a href="/mod/core.html#location">&lt;Location&gt;</a></code> et <code class="directive"><a href="/mod/core.html#files">&lt;Files&gt;</a></code>, elles n'y sont pas prises en compte, et
n'y sont � priori d'aucune utilit�.</li>
</ul>
</div>
<p>Pour quelques conseils � propos des <a class="glossarylink" href="/glossary.html#regex" title="voir glossaire">expressions rationnelles</a>, voir le
document <a href="/rewrite/intro.html#regex">Introduction �
mod_rewrite</a>.</p>
<p>Dans mod_rewrite, on peut aussi utiliser le caract�re NON
('<code>!</code>') comme pr�fixe de mod�le. Ceci vous permet
d'inverser la signification d'un mod�le, soit pour dire
``<em>si l'URL consid�r�e ne correspond <strong>PAS</strong> �
ce mod�le</em>''. Le caract�re NON peut donc �tre utilis� �
titre exceptionnel, lorsqu'il est plus simple d'effectuer une
comparaison avec le mod�le invers�, ou dans la derni�re r�gle
par d�faut.</p>
<div class="note"><h3>Note</h3>
Si vous utilisez le caract�re NON pour inverser la signification d'un
mod�le, vous ne pouvez pas inclure de parties g�n�riques group�es dans
le mod�le. Ceci est d� au fait que, lorsque le mod�le ne correspond
pas (autrement dit, sa n�gation correspond), les groupes sont vides.
Ainsi, si vous utilisez des mod�les invers�s, vous ne pouvez
pas vous r�f�rer aux groupes par <code>$N</code> dans la cha�ne de
substitution !
</div>
<p>Dans une r�gle de r��criture,
<a id="rhs" name="rhs"><em>Substitution</em></a> est la cha�ne
de caract�res qui remplace le chemin de l'URL original qui
correspondait au <em>Mod�le</em>. <em>Substitution</em> peut
�tre :</p>
<dl>
<dt>un chemin du syst�me de fichiers</dt>
<dd>Il indique alors la localisation dans le syst�me de
fichiers de la ressource qui doit �tre envoy�e au
client. Les substitutions ne sont trait�es en tant que chemins du
syst�me de fichiers que si la r�gle est configur�e dans un
contexte de serveur (serveur virtuel), et si le premier
composant du chemin dans la substitution existe dans le syst�me
de fichiers.</dd>
<dt>chemin d'URL</dt>
<dd>Un chemin relatif � la valeur de <code class="directive"><a href="/mod/core.html#documentroot">DocumentRoot</a></code> vers la ressource qui
doit �tre servie. Notez que <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code>
essaie de deviner si vous avez sp�cifi� un chemin du syst�me
de fichiers ou un chemin d'URL en v�rifiant si la premi�re
partie du chemin existe � la racine du syst�me de fichiers.
Par exemple, si vous avez sp�cifi� comme cha�ne de
<em>Substitution</em> <code>/www/file.html</code>, cette
derni�re sera trait�e comme un chemin d'URL <em>� moins</em>
qu'un r�pertoire nomm� <code>www</code> n'existe � la racine
de votre syst�me de fichiers, auquel cas la cha�ne de
substitution sera trait�e comme un chemin du syst�me de
fichiers. Si vous d�sirez que d'autres directives de
correspondance d'URL (comme la directive <code class="directive"><a href="/mod/mod_alias.html#alias">Alias</a></code>) soient appliqu�es au
chemin d'URL r�sultant, utilisez le drapeau <code>[PT]</code>
comme d�crit ci-dessous.</dd>
<dt>URL absolue</dt>
<dd>Si une URL absolue est sp�cifi�e,
<code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code> v�rifie si le nom d'h�te
correspond � celui de l'h�te local. Si c'est le cas, le
protocole et le nom d'h�te sont supprim�s, et ce qui reste est
trait� comme un chemin d'URL. Dans le cas contraire, une
redirection externe vers l'URL indiqu�e est effectu�e. Pour
forcer une redirection externe vers l'h�te local, voir le
drapeau <code>[R]</code> ci-dessous.</dd>
<dt><code>-</code> (tiret)</dt>
<dd>Un tiret indique qu'aucune substitution ne doit �tre
effectu�e (le chemin consid�r� est transmis sans changement).
Ceci est utile quand un drapeau doit �tre appliqu� sans
modifier le chemin (voir ci-dessous).</dd>
</dl>
<p>En plus du texte, la cha�ne <em>Substition</em> peut
comporter :</p>
<ol>
<li>des r�f�rences arri�res (<code>$N</code>) vers le mod�le
d'une directive RewriteRule</li>
<li>des r�f�rences arri�res (<code>%N</code>) vers le dernier
mod�le d'une directive RewriteCond qui correspondait</li>
<li>des variables du serveur comme dans les cha�nes de test de
condition d'une r�gle (<code>%{VARNAME}</code>)</li>
<li>des appels de
<a href="#mapfunc">fonctions de comparaison</a>
(<code>${nom correspondance:cl�|d�faut}</code>)</li>
</ol>
<p>Les r�f�rences arri�res sont des identificateurs de la forme
<code>$</code><strong>N</strong> (<strong>N</strong>=0..9), qui
seront remplac�s par le contenu du <strong>N</strong>�me groupe
du <em>Mod�le</em> qui correspondait. Les variables du serveur
sont les m�mes que dans la <em>Cha�ne de test</em> d'une
directive <code>RewriteCond</code>. Les fonctions de comparaison
sont issues de la directive <code>RewriteMap</code> dans la
section de laquelle elles sont d�crites. Ces trois types de
variables sont �valu�es dans l'ordre ci-dessus.</p>
<p>Chaque r�gle de r��criture s'applique au r�sultat de la r�gle
pr�c�dente, selon l'ordre dans lequel elles ont �t� d�finies dans
le fichier de configuration. Le chemin de l'URL ou du syst�me de fichier (voir
ci-dessus <a href="#what_is_matched">Qu'est-ce qui est
compar� ?</a>) est <strong>int�gralement
remplac�e</strong> par la cha�ne de <em>Substitution</em> et le
processus de r��criture se poursuit jusqu'� ce que toutes les
r�gles aient �t� appliqu�es, ou qu'il soit explicitement stopp�
par un drapeau <a href="/rewrite/flags.html#flag_l"><code><strong>L</strong></code></a>,
ou par un autre drapeau qui implique un arr�t imm�diat, comme
<code><strong>END</strong></code> ou
<code><strong>F</strong></code>.</p>
<div class="note"><h3>Modifier la cha�ne de requ�te</h3>
<p>Par d�faut, la cha�ne de requ�te est transmise sans
modification. Vous pouvez cependant cr�er dans la cha�ne de
substitution des URLs dont une partie constitue une cha�ne de
requ�te. Pour cela, ajoutez simplement un point d'interrogation
dans la cha�ne de substitution pour indiquer que le texte qui
suit doit �tre r�inject� dans la cha�ne de requ�te. Pour
supprimer une cha�ne de requ�te, terminez simplement la cha�ne de
substitution par un point d'interrogation. Pour combiner les
nouvelles cha�nes de requ�te avec les anciennes, utilisez le
drapeau <code>[QSA]</code>.</p>
</div>
<p>En outre, vous pouvez sp�cifier des <a name="rewriteflags" id="rewriteflags">actions</a> sp�ciales � effectuer en ajoutant
des
<strong><code>[</code><em>drapeaux</em><code>]</code></strong>
comme troisi�me argument de la directive
<code>RewriteRule</code>. S�par�s par des virgules au sein d'une
liste encadr�e par des crochets, les <em>drapeaux</em> peuvent
�tre choisis dans la table suivante. Vous trouverez plus de
d�tails, et des exemples pour chaque drapeau dans le <a href="/rewrite/flags.html">document � propos des drapeaux de
r��criture.</a></p>
<table class="bordered">
<tr><th>Drapeaux et syntaxe</th>
<th>Fonction</th>
</tr>
<tr>
<td>B</td>
<td>Echappe les caract�res non-alphanum�riques <em>avant</em>
d'appliquer la transformation. <em><a href="/rewrite/flags.html#flag_b">d�tails ...</a></em></td>
</tr>
<tr>
<td>chain|C</td>
<td>La r�gle est cha�n�e avec la r�gle suivante. Si la r�gle
�choue, la ou les r�gles avec lesquelles elle est est cha�n�e
seront saut�es. <em><a href="/rewrite/flags.html#flag_c">d�tails ...</a></em></td>
</tr>
<tr>
<td>cookie|CO=<em>NAME</em>:<em>VAL</em></td>
<td>D�finit un cookie au niveau du navigateur client. La syntaxe
compl�te est :
CO=<em>NAME</em>:<em>VAL</em>:<em>domain</em>[:<em>lifetime</em>[:<em>path</em>[:<em>secure</em>[:<em>httponly</em>]]]] <em><a href="/rewrite/flags.html#flag_co">details ...</a></em>
<em><a href="/rewrite/flags.html#flag_co">d�tails ...</a></em>
</td>
</tr>
<tr>
<td>discardpath|DPI</td>
<td>Supprime la partie PATH_INFO de l'URI r��crit. <em><a href="/rewrite/flags.html#flag_dpi">d�tails
...</a></em></td>
</tr>
<tr>
<td>env|E=[!]<em>VAR</em>[:<em>VAL</em>]</td>
<td>D�finit la variable d'environnement <em>VAR</em> (� la valeur
<em>VAL</em> si elle est fournie). La variante !<em>VAR</em>
annule la d�finition de la variable <em>VAR</em>.<em><a href="/rewrite/flags.html#flag_e">d�tails ...</a></em></td>
</tr>
<tr>
<td>forbidden|F</td>
<td>Renvoie une r�ponse 403 FORBIDDEN au navigateur client.
<em><a href="/rewrite/flags.html#flag_f">d�tails ...</a></em></td>
</tr>
<tr>
<td>gone|G</td>
<td>Renvoie un message d'erreur 410 GONE au navigateur client. <em><a href="/rewrite/flags.html#flag_g">d�tails ...</a></em></td>
</tr>
<tr>
<td>Handler|H=<em>Gestionnaire de contenu</em></td>
<td>L'URI r�sultant est envoy� au <em>Gestionnaire de
contenu</em> pour traitement. <em><a href="/rewrite/flags.html#flag_h">d�tails ...</a></em></td>
</tr>
<tr>
<td>last|L</td>
<td>Arr�te le processus de r��criture imm�diatement et n'applique
plus aucune r�gle. Pr�tez une attention particuli�re aux mises
en garde concernant les contextes de niveau r�pertoire et
.htaccess (voir aussi le drapeau END). <em><a href="/rewrite/flags.html#flag_l">d�tails ...</a></em></td>
</tr>
<tr>
<td>next|N</td>
<td>R�ex�cute le processus de r��criture � partir de la premi�re
r�gle, en utilisant le r�sultat du jeu de r�gles, sous r�serve
qu'il y ait un point de d�part. <em><a href="/rewrite/flags.html#flag_n">d�tails
...</a></em></td>
</tr>
<tr>
<td>nocase|NC</td>
<td>Rend la comparaison entre mod�les insensible � la casse.
<em><a href="/rewrite/flags.html#flag_nc">d�tails ...</a></em></td>
</tr>
<tr>
<td>noescape|NE</td>
<td>Emp�che mod_rewrite d'effectuer un �chappement hexad�cimal
des caract�res sp�ciaux dans le r�sultat de la r��criture. <em><a href="/rewrite/flags.html#flag_ne">d�tails ...</a></em></td>
</tr>
<tr>
<td>nosubreq|NS</td>
<td>La r�gle est saut�e si la requ�te courante est une
sous-requ�te interne. <em><a href="/rewrite/flags.html#flag_ns">d�tails ...</a></em></td>
</tr>
<tr>
<td>proxy|P</td>
<td>Force l'envoi en interne de l'URL de substitution en tant
que requ�te mandataire. <em><a href="/rewrite/flags.html#flag_p">d�tails
...</a></em></td>
</tr>
<tr>
<td>passthrough|PT</td>
<td>L'URI r�sultant est repass� au moteur de mise en
correspondance des URLs pour y �tre trait� par d'autres
traducteurs URI-vers-nom de fichier, comme <code>Alias</code> ou
<code>Redirect</code>. <em><a href="/rewrite/flags.html#flag_pt">d�tails ...</a></em></td>
</tr>
<tr>
<td>qsappend|QSA</td>
<td>Ajoute toute cha�ne de param�tres pr�sente dans l'URL de la
requ�te originale � toute cha�ne de param�tres cr��e dans la
cible de r��criture. <em><a href="/rewrite/flags.html#flag_qsa">d�tails ...</a></em></td>
</tr>
<tr>
<td>qsdiscard|QSD</td>
<td>Supprime toute cha�ne de param�tres de l'URI entrant. <em><a href="/rewrite/flags.html#flag_qsd">d�tails
...</a></em></td>
</tr>
<tr>
<td>redirect|R[=<em>code</em>]</td>
<td>Force une redirection externe, avec un code de statut HTTP
optionnel. <em><a href="/rewrite/flags.html#flag_r">d�tails ...</a></em>
</td>
</tr>
<tr>
<td>END</td>
<td>Arr�te le processus de r��criture imm�diatement et
n'applique plus aucune r�gle. Emp�che aussi l'ex�cution
ult�rieure de r�gles de r��criture dans des contextes de
r�pertoire et des fichiers .htaccess (disponible depuis la
version 2.3.9) <em><a href="/rewrite/flags.html#flag_l">d�tails ...</a></em></td>
</tr>
<tr>
<td>skip|S=<em>nombre</em></td>
<td>Si la r�gle courante s'applique, le moteur de r��criture
doit sauter les <em>nombre</em> r�gles suivantes. <em><a href="/rewrite/flags.html#flag_s">d�tails ...</a></em></td>
</tr>
<tr>
<td>type|T=<em>MIME-type</em></td>
<td>Force l'attribution du <a class="glossarylink" href="/glossary.html#type-mime" title="voir glossaire">Type-MIME</a>
sp�cifi� au fichier cible. <em><a href="/rewrite/flags.html#flag_t">d�tails ...</a></em></td>
</tr>
</table>
<div class="note"><h3>D�veloppement du r�pertoire home</h3>
<p> Quand la cha�ne de substitution commence par quelque chose comme
"/~user" (de mani�re explicite ou par r�f�rences arri�res), mod_rewrite
d�veloppe le r�pertoire home sans tenir compte de la pr�sence ou de la
configuration du module <code class="module"><a href="/mod/mod_userdir.html">mod_userdir</a></code>.</p>
<p> Ce d�veloppement n'est pas effectu� si le drapeau <em>PT</em> est
utilis� dans la directive <code class="directive"><a href="#rewriterule">RewriteRule</a></code></p>
</div>
<p>Voici toutes les combinaisons de substitution et leurs
significations :</p>
<p><strong>Dans la configuration au niveau du serveur principal
(<code>httpd.conf</code>)<br />
pour la requ�te ``<code>GET
/chemin/infochemin</code>'':</strong><br />
</p>
<table class="bordered">
<tr>
<th>R�gle</th>
<th>R�sultat de la substitution</th>
</tr>
<tr>
<td>^/un_chemin(.*) autre_chemin$1</td>
<td>invalide, non support�</td>
</tr>
<tr>
<td>^/un_chemin(.*) autre_chemin$1 [R]</td>
<td>invalide, non support�</td>
</tr>
<tr>
<td>^/un_chemin(.*) autre_chemin$1 [P]</td>
<td>invalide, non support�</td>
</tr>
<tr>
<td>^/un_chemin(.*) /autre_chemin$1</td>
<td>/autre_chemin/info_chemin</td>
</tr>
<tr>
<td>^/un_chemin(.*) /autre_chemin$1 [R]</td>
<td>http://cet_hote/autre_chemin/info_chemin via une redirection externe</td>
</tr>
<tr>
<td>^/un_chemin(.*) /autre_chemin$1 [P]</td>
<td>sans objet, non support�</td>
</tr>
<tr>
<td>^/un_chemin(.*) http://cet_hote/autre_chemin$1</td>
<td>/autre_chemin/info_chemin</td>
</tr>
<tr>
<td>^/un_chemin(.*) http://cet_hote/autre_chemin$1 [R]</td>
<td>http://cet_hote/autre_chemin/info_chemin via une redirection externe</td>
</tr>
<tr>
<td>^/un_chemin(.*) http://cet_hote/autre_chemin$1 [P]</td>
<td>sans objet, non support�</td>
</tr>
<tr>
<td>^/un_chemin(.*) http://autre_hote/autre_chemin$1</td>
<td>http://autre_hote/autre_chemin/info_chemin via une redirection externe</td>
</tr>
<tr>
<td>^/un_chemin(.*) http://autre_hote/autre_chemin$1 [R]</td>
<td>http://autre_hote/autre_chemin/info_chemin (le drapeau [R] est
redondant)</td>
</tr>
<tr>
<td>^/somepath(.*) http://otherhost/otherpath$1 [P]</td>
<td>http://otherhost/otherpath/pathinfo via internal proxy</td>
</tr>
</table>
<p><strong>Dans une configuration de niveau r�pertoire pour
<code>/chemin</code><br />
(<code>/chemin/physique/vers/chemin/.htacccess</code>, avec
<code>RewriteBase /chemin</code>)<br />
pour la requ�te ``<code>GET
/chemin/chemin-local/infochemin</code>'':</strong><br />
</p>
<table class="bordered">
<tr>
<th>R�gle</th>
<th>R�sultat de la substitution</th>
</tr>
<tr>
<td>^chemin-local(.*) autre-chemin$1</td>
<td>/chemin/autre-chemin/infochemin</td>
</tr>
<tr>
<td>^chemin-local(.*) autre-chemin$1 [R]</td>
<td>http://cet-hte/chemin/autre-chemin/infochemin via redirection
externe</td>
</tr>
<tr>
<td>^chemin-local(.*) autre-chemin$1 [P]</td>
<td>n'a pas lieu d'�tre, non support�</td>
</tr>
<tr>
<td>^chemin-local(.*) /autre-chemin$1</td>
<td>/autre-chemin/infochemin</td>
</tr>
<tr>
<td>^chemin-local(.*) /autre-chemin$1 [R]</td>
<td>http://cet-hte/autre-chemin/infochemin via redirection externe</td>
</tr>
<tr>
<td>^chemin-local(.*) /autre-chemin$1 [P]</td>
<td>n'a pas lieu d'�tre, non support�</td>
</tr>
<tr>
<td>^chemin-local(.*) http://cet-hte/autre-chemin$1</td>
<td>/autre-chemin/infochemin</td>
</tr>
<tr>
<td>^chemin-local(.*) http://cet-hte/autre-chemin$1 [R]</td>
<td>http://cet-hte/autre-chemin/infochemin via redirection externe</td>
</tr>
<tr>
<td>^chemin-local(.*) http://cet-hte/autre-chemin$1 [P]</td>
<td>n'a pas lieu d'�tre, non support�</td>
</tr>
<tr>
<td>^chemin-local(.*) http://autre h�te/autre-chemin$1</td>
<td>http://autre h�te/autre-chemin/infochemin via redirection externe</td>
</tr>
<tr>
<td>^chemin-local(.*) http://autre h�te/autre-chemin$1 [R]</td>
<td>http://autre h�te/autre-chemin/infochemin via redirection externe
(le drapeau [R] est redondant)</td>
</tr>
<tr>
<td>^chemin-local(.*) http://autre h�te/autre-chemin$1 [P]</td>
<td>http://autre h�te/autre-chemin/infochemin via un mandataire interne</td>
</tr>
</table>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="/en/mod/mod_rewrite.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="/fr/mod/mod_rewrite.html" title="Fran�ais">&nbsp;fr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2012 The Apache Software Foundation.<br />Autoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossaire</a> | <a href="/sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== undefined) {
prettyPrint();
}
//--><!]]></script>
</body></html>