This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
-<title>Les expressions dans le serveur HTTP Apache - Serveur Apache HTTP</title>
+<title>Les expressions dans le serveur HTTP Apache - Serveur Apache HTTP Version 2.5</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<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" />
<p><span>Langues Disponibles: </span><a href="./en/expr.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="./fr/expr.html" title="Français"> fr </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<p>Historiquement, il existe de nombreuses variantes dans la syntaxe
des expressions permettant d'exprimer une condition dans les
<li><img alt="" src="./images/down.gif" /> <a href="#other">Autres</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#sslrequire">Comparaison avec SSLRequire</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#compatibility">Historique de version</a></li>
-</ul><h3>Voir aussi</h3><ul class="seealso"><li><code class="directive"><a href="./mod/core.html#if">If</a></code></li><li><code class="directive"><a href="./mod/core.html#if"><If></a></code></li><li><code class="directive"><a href="./mod/core.html#elseif"><ElseIf></a></code></li><li><code class="directive"><a href="./mod/core.html#else"><Else></a></code></li><li><code class="directive"><a href="./mod/mod_auth_basic.html#authbasicfake">AuthBasicFake</a></code></li><li><code class="directive"><a href="./mod/mod_auth_form.html#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code></li><li><code class="directive"><a href="./mod/mod_auth_form.html#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code></li><li><code class="directive"><a href="./mod/mod_auth_form.html#authformlogoutlocation">AuthFormLogoutLocation</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#setenvifexpr">SetEnvIfExpr</a></code></li><li><code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code></li><li><code class="directive"><a href="./mod/mod_headers.html#requestheader">RequestHeader</a></code></li><li><code class="directive"><a href="./mod/mod_filter.html#filterprovider">FilterProvider</a></code></li><li><a href="mod/mod_authz_core.html#reqexpr">Require expr</a></li><li><a href="mod/mod_authnz_ldap.html#requser">Require ldap-user</a></li><li><a href="mod/mod_authnz_ldap.html#reqgroup">Require ldap-group</a></li><li><a href="mod/mod_authnz_ldap.html#reqdn">Require ldap-dn</a></li><li><a href="mod/mod_authnz_ldap.html#reqattribute">Require ldap-attribute</a></li><li><a href="mod/mod_authnz_ldap.html#reqfilter">Require ldap-filter</a></li><li><a href="mod/mod_authz_dbd.html#reqgroup">Require dbd-group</a></li><li><a href="mod/mod_authz_dbm.html#reqgroup">Require dbm-group</a></li><li><a href="mod/mod_authz_groupfile.html#reqgroup">Require group</a></li><li><a href="mod/mod_authz_host.html#reqhost">Require host</a></li><li><code class="directive"><a href="./mod/mod_ssl.html#sslrequire">SSLRequire</a></code></li><li><code class="directive"><a href="./mod/mod_log_debug.html#logmessage">LogMessage</a></code></li><li><code class="module"><a href="./mod/mod_include.html">mod_include</a></code></li></ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
+</ul><h3>Voir aussi</h3><ul class="seealso"><li><code class="directive"><a href="./mod/core.html#if">If</a></code></li><li><code class="directive"><a href="./mod/core.html#if"><If></a></code></li><li><code class="directive"><a href="./mod/core.html#elseif"><ElseIf></a></code></li><li><code class="directive"><a href="./mod/core.html#else"><Else></a></code></li><li><code class="directive"><a href="./mod/mod_auth_basic.html#authbasicfake">AuthBasicFake</a></code></li><li><code class="directive"><a href="./mod/mod_auth_form.html#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code></li><li><code class="directive"><a href="./mod/mod_auth_form.html#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code></li><li><code class="directive"><a href="./mod/mod_auth_form.html#authformlogoutlocation">AuthFormLogoutLocation</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#setenvifexpr">SetEnvIfExpr</a></code></li><li><code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code></li><li><code class="directive"><a href="./mod/mod_headers.html#requestheader">RequestHeader</a></code></li><li><code class="directive"><a href="./mod/mod_filter.html#filterprovider">FilterProvider</a></code></li><li><a href="mod/mod_authz_core.html#reqexpr">Require expr</a></li><li><a href="mod/mod_authnz_ldap.html#requser">Require ldap-user</a></li><li><a href="mod/mod_authnz_ldap.html#reqgroup">Require ldap-group</a></li><li><a href="mod/mod_authnz_ldap.html#reqdn">Require ldap-dn</a></li><li><a href="mod/mod_authnz_ldap.html#reqattribute">Require ldap-attribute</a></li><li><a href="mod/mod_authnz_ldap.html#reqfilter">Require ldap-filter</a></li><li><a href="mod/mod_authnz_ldap.html#reqsearch">Require ldap-search</a></li><li><a href="mod/mod_authz_dbd.html#reqgroup">Require dbd-group</a></li><li><a href="mod/mod_authz_dbm.html#reqgroup">Require dbm-group</a></li><li><a href="mod/mod_authz_groupfile.html#reqgroup">Require group</a></li><li><a href="mod/mod_authz_host.html#reqhost">Require host</a></li><li><code class="directive"><a href="./mod/mod_ssl.html#sslrequire">SSLRequire</a></code></li><li><code class="directive"><a href="./mod/mod_log_debug.html#logmessage">LogMessage</a></code></li><li><code class="module"><a href="./mod/mod_include.html">mod_include</a></code></li></ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="grammar" id="grammar">Syntaxe en Forme de Backus-Naur</a></h2>
caractères. Dans ce cas, le point de départ de la BNF est
<code>string</code>.
</p>
+<blockquote>
<pre>expr ::= "<strong>true</strong>" | "<strong>false</strong>"
| "<strong>!</strong>" expr
| expr "<strong>&&</strong>" expr
rebackref ::= "<strong>$</strong>" [0-9]
-function ::= funcname "<strong>(</strong>" word "<strong>)</strong>"
+function ::= funcname "<strong>(</strong>" wordlist "<strong>)</strong>"
listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"</pre>
-
+</blockquote>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="vars" id="vars">Variables</a></h2>
<table class="bordered"><tr class="header"><th>Nom</th></tr>
<tr><td><code>HTTP_ACCEPT</code></td></tr>
-<tr class="odd"><td><code>HTTP_FORWARDED</code></td></tr>
-<tr><td><code>HTTP_HOST</code></td></tr>
-<tr class="odd"><td><code>HTTP_PROXY_CONNECTION</code></td></tr>
-<tr><td><code>HTTP_REFERER</code></td></tr>
-<tr class="odd"><td><code>HTTP_USER_AGENT</code></td></tr>
+<tr class="odd"><td><code>HTTP_COOKIE</code></td></tr>
+<tr><td><code>HTTP_FORWARDED</code></td></tr>
+<tr class="odd"><td><code>HTTP_HOST</code></td></tr>
+<tr><td><code>HTTP_PROXY_CONNECTION</code></td></tr>
+<tr class="odd"><td><code>HTTP_REFERER</code></td></tr>
+<tr><td><code>HTTP_USER_AGENT</code></td></tr>
</table>
<p>Autres variables liées aux requêtes</p>
<tr><td><code>REQUEST_URI</code></td>
<td>La partie chemin de l'URI de la requête</td></tr>
<tr class="odd"><td><code>DOCUMENT_URI</code></td>
- <td>Idem REQUEST_URI</td></tr>
+ <td>Idem <code>REQUEST_URI</code></td></tr>
<tr><td><code>REQUEST_FILENAME</code></td>
<td>Le chemin complet dans le système de fichiers local du
fichier ou du script correspondant à la requête, si le serveur
<tr><td><code>REMOTE_HOST</code></td>
<td>Le nom d'hôte de l'hôte distant</td></tr>
<tr class="odd"><td><code>REMOTE_USER</code></td>
- <td>Le nom de l'utilisateur authentifié (s'il existe)</td></tr>
+ <td>Le nom de l'utilisateur authentifié, s'il existe (non
+ disponible à l'intérieur d'un bloc <code class="directive"><If
+ ></code>)</td></tr>
<tr><td><code>REMOTE_IDENT</code></td>
<td>Le nom de l'utilisateur défini par <code class="module"><a href="./mod/mod_ident.html">mod_ident</a></code></td></tr>
<tr class="odd"><td><code>SERVER_NAME</code></td>
<td>La valeur de la directive <code class="directive"><a href="./mod/mod_authn_core.html#authtype">AuthType</a></code> (par exemple
"<code>basic</code>")</td></tr>
<tr><td><code>CONTENT_TYPE</code></td>
- <td>Le type de contenu de la réponse</td></tr>
+ <td>Le type de contenu de la réponse (non
+ disponible à l'intérieur d'un bloc <code class="directive"><If
+ ></code>)</td></tr>
<tr class="odd"><td><code>HANDLER</code></td>
<td>Le nom du <a href="handler.html">gestionnaire</a> qui a
généré la réponse</td></tr>
<td>"<code>on</code>" si la connexion utilise IPv6,
"<code>off</code>" dans le cas contraire</td></tr>
<tr><td><code>REQUEST_STATUS</code></td>
- <td>Le code d'erreur HTTP de la requête</td></tr>
+ <td>Le code d'erreur HTTP de la requête (non
+ disponible à l'intérieur d'un bloc <code class="directive"><If
+ ></code>)</td></tr>
<tr class="odd"><td><code>REQUEST_LOG_ID</code></td>
<td>L'identifiant du message d'erreur associé à la requête (voir
la directive <code class="directive"><a href="./mod/core.html#errorlogformat">ErrorLogFormat</a></code>)</td></tr>
<tr class="odd"><td><code>CONN_REMOTE_ADDR</code></td>
<td>L'adresse IP du correspondant pour la connexion (voir le module
<code class="module"><a href="./mod/mod_remoteip.html">mod_remoteip</a></code>)</td></tr>
+<tr><td><code>CONTEXT_PREFIX</code></td>
+ <td /></tr>
+<tr class="odd"><td><code>CONTEXT_DOCUMENT_ROOT</code></td>
+ <td /></tr>
</table>
<p>Variables diverses</p>
<td>Effectue un hashage SHA1 de la chaîne, puis encode le hash
avec un codage hexadécimal</td><td /></tr>
<tr class="odd"><td><code>file</code></td>
- <td>Lit le contenu d'un fichier</td><td>oui</td></tr>
+ <td>Lit le contenu d'un fichier (fins de lignes incluses, si
+ elles existent)</td><td>oui</td></tr>
<tr><td><code>filesize</code></td>
<td>Renvoie la taille d'un fichier (ou 0 si le fichier n'existe
- pas ou ne correspond pas à un fichier régulier)</td><td>oui</td></tr>
+ pas ou ne correspond pas à un fichier
+ régulier)</td><td>oui</td></tr>
+<tr class="odd"><td><code>ldap</code></td>
+ <td>Echappe les caractères selon la RFC4514 (Echappement des
+ noms distinctifs LDAP - DN) et la RFC4515 (Echappement des
+ filtres LDAP).</td><td /></tr>
+<tr><td><code>replace</code></td>
+ <td>replace(chaîne, "de", "vers") remplace dans la chaîne
+ spécifiée toutes les occurrences de "de" par "vers".</td><td /></tr>
</table>
<p>Les fonctions marquées comme "restreints" ne sont pas disponibles
# travail
<Directory "/foo/bar/business">
Require expr %{TIME_HOUR} -gt 9 && %{TIME_HOUR} -lt 17
+</Directory>
+
+# Vérifie si un en-tête HTTP correspond à une des valeurs d'une liste
+<If "%{HTTP:X-example-header} in { 'foo', 'bar', 'baz'}">
+ La définition de l'en-tête correspond à une des valeurs recherchées
+</If>
+# Recherche la valeur d'une expression rationnelle dans une variable
+# d'environnement, et renvoie la négation du résultat.
+<If "! reqenv('REDIRECT_FOO') =~ /bar/">
+ La condition est vérifiée
+</If>
+
+# Vérifie le résultat de la recherche d'une correspondance d'URI dans un
+# contexte de répertoire avec l'option -f
+<Directory /var/www>
+ AddEncoding x-gzip gz
+<If "-f '%{REQUEST_FILENAME}.unzipme' && ! %{HTTP:Accept-Encoding} =~ /gzip/">
+ SetOutputFilter INFLATE
+</If>
</Directory></pre>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<table class="bordered"><tr class="header"><th>Nom</th><th>Alternative</th> <th>Description</th></tr>
<tr><td><code>-in</code></td>
<td><code>in</code></td>
- <td>chaîne contenue dans une liste de chaînes</td></tr>
+ <td>chaîne contenue dans une liste de mots</td></tr>
<tr class="odd"><td><code>/regexp/</code></td>
<td><code>m#regexp#</code></td>
<td>Expression rationnelle (la seconde forme permet de spécifier