]> granicus.if.org Git - apache/blobdiff - docs/manual/expr.xml.fr
make docs
[apache] / docs / manual / expr.xml.fr
index 7ef56119ba04a00e91367b59c3c1a3b5fab1978c..d2c179531187f247d6fdbe195aaecde9e10d4d8c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
-<!-- English Revision : 1202456 -->
+<!-- English Revision: 1663259:1670320 (outdated) -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
 <seealso><directive module="core" type="section">If</directive></seealso>
 <seealso><directive module="core" type="section">ElseIf</directive></seealso>
 <seealso><directive module="core" type="section">Else</directive></seealso>
+<seealso><directive module="mod_alias">Alias</directive></seealso>
+<seealso><directive module="mod_alias">ScriptAlias</directive></seealso>
+<seealso><directive module="mod_alias">Redirect</directive></seealso>
+<seealso><directive module="mod_auth_basic">AuthBasicFake</directive></seealso>
+<seealso><directive module="mod_auth_form">AuthFormLoginRequiredLocation</directive></seealso>
+<seealso><directive module="mod_auth_form">AuthFormLoginSuccessLocation</directive></seealso>
+<seealso><directive module="mod_auth_form">AuthFormLogoutLocation</directive></seealso>
 <seealso><directive module="mod_rewrite">RewriteCond</directive></seealso>
 <seealso><directive module="mod_setenvif">SetEnvIfExpr</directive></seealso>
 <seealso><directive module="mod_headers">Header</directive></seealso>
 <seealso><directive module="mod_headers">RequestHeader</directive></seealso>
 <seealso><directive module="mod_filter">FilterProvider</directive></seealso>
 <seealso><a href="mod/mod_authz_core.html#reqexpr">Require expr</a></seealso>
+<seealso><a href="mod/mod_authnz_ldap.html#requser">Require ldap-user</a></seealso>
+<seealso><a href="mod/mod_authnz_ldap.html#reqgroup">Require ldap-group</a></seealso>
+<seealso><a href="mod/mod_authnz_ldap.html#reqdn">Require ldap-dn</a></seealso>
+<seealso><a href="mod/mod_authnz_ldap.html#reqattribute">Require ldap-attribute</a></seealso>
+<seealso><a href="mod/mod_authnz_ldap.html#reqfilter">Require ldap-filter</a></seealso>
+<seealso><a href="mod/mod_authz_dbd.html#reqgroup">Require dbd-group</a></seealso>
+<seealso><a href="mod/mod_authz_dbm.html#reqgroup">Require dbm-group</a></seealso>
+<seealso><a href="mod/mod_authz_groupfile.html#reqgroup">Require group</a></seealso>
+<seealso><a href="mod/mod_authz_host.html#reqhost">Require host</a></seealso>
 <seealso><directive module="mod_ssl">SSLRequire</directive></seealso>
 <seealso><directive module="mod_log_debug">LogMessage</directive></seealso>
 <seealso><module>mod_include</module></seealso>
     <title>Syntaxe en Forme de Backus-Naur</title>
       <p>La <a href="http://fr.wikipedia.org/wiki/Forme_de_Backus-Naur">Forme de Backus-Naur</a>
       (souvent abr&eacute;g&eacute;e en BNF, de l'anglais Backus-Naur Form) est une notation permettant de d&eacute;crire
-      les r&egrave;gles syntaxiques des langages de programmation.
+      les r&egrave;gles syntaxiques des langages de programmation. En
+      g&eacute;n&eacute;ral, les expressions repr&eacute;sentent des valeurs bool&eacute;ennes. Dans
+      ce cas, le point de d&eacute;part de la BNF est <code>expr</code>.
+      Cependant, certaines directives comme <directive
+      module="mod_log_debug">LogMessage</directive> utilisent comme
+      param&egrave;tres des expressions qui repr&eacute;sentent des cha&icirc;nes de
+      caract&egrave;res. Dans ce cas, le point de d&eacute;part de la BNF est
+      <code>string</code>.
       </p>
 <blockquote>
 <pre>
@@ -143,13 +166,20 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
 
     <p>Les variables suivantes contiennent la valeur de l'en-t&ecirc;te de
     requ&ecirc;te HTTP correspondant. La <a href="#functions">fonction</a>
-    <code>req</code> permet d'extraire les valeurs des autres en-t&ecirc;tes.</p>
+    <code>req</code> permet d'extraire les valeurs des autres
+    en-t&ecirc;tes. L'utilisation de ces variables peut provoquer
+    l'ajout du nom d'en-t&ecirc;te correspondant &agrave; l'en-t&ecirc;te Vary de la
+    r&eacute;ponse HTTP, sauf sp&eacute;cification contraire pour la directive
+    qui accepte l'expression comme param&egrave;tre. La <a
+    href="#functions">function</a> <code>req_novary</code> permet de
+    modifier ce comportement.</p>
 
     <table border="1" style="zebra">
     <columnspec><column width="1"/></columnspec>
 
     <tr><th>Nom</th></tr>
     <tr><td><code>HTTP_ACCEPT</code></td></tr>
+    <tr><td><code>HTTP_COOKIE</code></td></tr>
     <tr><td><code>HTTP_FORWARDED</code></td></tr>
     <tr><td><code>HTTP_HOST</code></td></tr>
     <tr><td><code>HTTP_PROXY_CONNECTION</code></td></tr>
@@ -172,7 +202,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
     <tr><td><code>REQUEST_URI</code></td>
         <td>La partie chemin de l'URI de la requ&ecirc;te</td></tr>
     <tr><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&egrave;me de fichiers local du
        fichier ou du script correspondant &agrave; la requ&ecirc;te, si le serveur
@@ -206,7 +236,9 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
     <tr><td><code>REMOTE_HOST</code></td>
         <td>Le nom d'h&ocirc;te de l'h&ocirc;te distant</td></tr>
     <tr><td><code>REMOTE_USER</code></td>
-        <td>Le nom de l'utilisateur authentifi&eacute; (s'il existe)</td></tr>
+        <td>Le nom de l'utilisateur authentifi&eacute;, s'il existe (non
+       disponible &agrave; l'int&eacute;rieur d'un bloc <directive>&lt;If
+       &gt;</directive>)</td></tr>
     <tr><td><code>REMOTE_IDENT</code></td>
         <td>Le nom de l'utilisateur d&eacute;fini par <module>mod_ident</module></td></tr>
     <tr><td><code>SERVER_NAME</code></td>
@@ -229,7 +261,9 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
        module="mod_authn_core">AuthType</directive> (par exemple
        "<code>basic</code>")</td></tr>
     <tr><td><code>CONTENT_TYPE</code></td>
-        <td>Le type de contenu de la r&eacute;ponse</td></tr>
+        <td>Le type de contenu de la r&eacute;ponse (non
+       disponible &agrave; l'int&eacute;rieur d'un bloc <directive>&lt;If
+       &gt;</directive>)</td></tr>
     <tr><td><code>HANDLER</code></td>
         <td>Le nom du <a href="handler.html">gestionnaire</a> qui a
        g&eacute;n&eacute;r&eacute; la r&eacute;ponse</td></tr>
@@ -240,7 +274,9 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
         <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&ecirc;te</td></tr>
+        <td>Le code d'erreur HTTP de la requ&ecirc;te (non
+       disponible &agrave; l'int&eacute;rieur d'un bloc <directive>&lt;If
+       &gt;</directive>)</td></tr>
     <tr><td><code>REQUEST_LOG_ID</code></td>
         <td>L'identifiant du message d'erreur associ&eacute; &agrave; la requ&ecirc;te (voir
        la directive <directive
@@ -249,6 +285,13 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
         <td>L'identifiant du message d'erreur associ&eacute; &agrave; la connexion
        (voir la directive <directive
        module="core">ErrorLogFormat</directive>)</td></tr>
+    <tr><td><code>CONN_REMOTE_ADDR</code></td>
+        <td>L'adresse IP du correspondant pour la connexion (voir le module
+       <module>mod_remoteip</module>)</td></tr>
+    <tr><td><code>CONTEXT_PREFIX</code></td>
+        <td></td></tr>
+    <tr><td><code>CONTEXT_DOCUMENT_ROOT</code></td>
+        <td></td></tr> 
 
     </table>
 
@@ -388,6 +431,9 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
         <td>L'argument est trait&eacute; comme un nom de fichier. Vrai si le
        fichier existe et correspond &agrave; un fichier
        r&eacute;gulier</td><td>oui</td></tr>
+    <tr><td><code>-s</code></td>
+        <td>L'argument est trait&eacute; comme un nom de fichier. Vrai si le
+       fichier existe et n'est pas vide</td><td>oui</td></tr>
     <tr><td><code>-L</code></td>
         <td>L'argument est trait&eacute; comme un nom de fichier. Vrai si le
        fichier existe et correspond &agrave; un lien
@@ -442,11 +488,18 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
 
     <tr><th>Nom</th><th>Description</th><th>Restreint</th></tr>
     <tr><td><code>req</code>, <code>http</code></td>
-        <td>Lit l'en-t&ecirc;te de requ&ecirc;te HTTP</td><td></td></tr>
+        <td>Lit l'en-t&ecirc;te de requ&ecirc;te HTTP ; les noms
+       d'en-t&ecirc;te correspondants peuvent &ecirc;tre ajout&eacute;s
+       &agrave; l'en-t&ecirc;te Vary,
+       voir ci-dessous</td><td></td></tr>
+    <tr><td><code>req_novary</code></td>
+        <td>Identique &agrave; <code>req</code>, mais aucun nom d'en-t&ecirc;te n'est
+       ajout&eacute; &agrave; l'en-t&ecirc;te Vary</td><td></td></tr>
     <tr><td><code>resp</code></td>
         <td>Lit l'en-t&ecirc;te de r&eacute;ponse HTTP</td><td></td></tr>
     <tr><td><code>reqenv</code></td>
-        <td>Recherche une variable d'environnement de requ&ecirc;te</td><td></td></tr>
+        <td>Recherche une variable d'environnement de requ&ecirc;te (on
+       peut aussi utiliser le raccourci <code>v</code>).</td><td></td></tr>
     <tr><td><code>osenv</code></td>
         <td>Recherche une variable d'environnement du syst&egrave;me
        d'exploitation</td><td></td></tr>
@@ -465,8 +518,20 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
         <td>"D&eacute;s&eacute;chappe" les cha&icirc;nes cod&eacute;es
        en hexad&eacute;cimal, en ne gardant encod&eacute;s que les slashes; renvoie la cha&icirc;ne vide
        si la s&eacute;quence %00 est rencontr&eacute;e</td><td></td></tr>
+    <tr><td><code>base64</code></td>
+        <td>Encode la cha&icirc;ne en base64</td><td></td></tr>
+    <tr><td><code>unbase64</code></td>
+        <td>D&eacute;code les cha&icirc;nes cod&eacute;es en base64, renvoie une cha&icirc;ne
+       tronqu&eacute;e si le caract&egrave;re 0x00 est rencontr&eacute;</td><td></td></tr>
+    <tr><td><code>md5</code></td>
+        <td>G&eacute;n&egrave;re un hash de la cha&icirc;ne en utilisant MD5, puis code le
+       hash obtenu en hexad&eacute;cimal</td><td></td></tr>
+    <tr><td><code>sha1</code></td>
+        <td>G&eacute;n&egrave;re un hash de la cha&icirc;ne en utilisant SHA1, puis encode
+       le hash obtenu en hexad&eacute;cimal</td><td></td></tr>
     <tr><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 &agrave; un fichier r&eacute;gulier)</td><td>oui</td></tr>
@@ -476,6 +541,13 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
     <p>Les fonctions marqu&eacute;es comme "restreints" ne sont pas disponibles
     avec certains modules comme <module>mod_include</module>.</p>
 
+    <p>Lorsque les fonctions <code>req</code> ou <code>http</code> sont
+    utilis&eacute;es, le nom d'en-t&ecirc;te sera automatiquement ajout&eacute; &agrave; l'en-t&ecirc;te
+    Vary de la r&eacute;ponse HTTP, sauf sp&eacute;cification contraire pour la
+    directive qui accepte l'expression comme param&egrave;tre. La
+    fonction <code>req_novary</code> permet d'emp&ecirc;cher l'ajout de noms
+    d'en-t&ecirc;tes &agrave; l'en-t&ecirc;te Vary.</p>
+
     <p>En plus des fonctions dont la valeur est une cha&icirc;ne, il existe
     aussi des fonctions dont la valeur est une liste, qui acceptent une
     cha&icirc;ne comme argument, et renvoient une liste de mots, autrement dit
@@ -493,6 +565,64 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
     module="mod_ssl">SSLRequire</directive>).</p>
 
 </section>
+<section id="examples">
+    
+       <title>Exemples d'expressions</title>
+       <p>Les exemples suivants montent comment utiliser les
+       expressions pour &eacute;valuer les requ&ecirc;tes :</p>
+       <!-- This section should probably be extended with more, useful examples -->
+       <highlight language="config">
+# Comparer le nom d'h&ocirc;te avec example.com et rediriger vers
+# www.example.com si le nom d'h&ocirc;te correspond
+&lt;If "%{HTTP_HOST} == 'example.com'"&gt;
+    Redirect permanent / http://www.example.com/
+&lt;/If&gt;
+
+# Forcer le type text/plain si un fichier fait l'objet d'une
+# requ&ecirc;te dont la cha&icirc;ne de param&egrave;tres contient 'forcetext'
+&lt;If "%{QUERY_STRING} =~ /forcetext/"&gt;
+    ForceType text/plain
+&lt;/If&gt;
+
+# N'autoriser l'acc&egrave;s &agrave; ce contenu que pendant les heures de
+# travail
+&lt;Directory "/foo/bar/business"&gt;
+     Require expr %{TIME_HOUR} -gt 9 &amp;&amp; %{TIME_HOUR} -lt 17
+&lt;/Directory&gt;
+
+# V&eacute;rifie si un en-t&ecirc;te HTTP correspond &agrave; une des valeurs d'une liste
+&lt;If "%{HTTP:X-example-header} in { 'foo', 'bar', 'baz' }"&gt;
+    La d&eacute;finition de l'en-t&ecirc;te correspond &agrave; une des valeurs recherch&eacute;es
+&lt;/If&gt;
+
+# Recherche la valeur d'une expression rationnelle dans une variable
+# d'environnement, et renvoie la n&eacute;gation du r&eacute;sultat.
+&lt;If "! reqenv('REDIRECT_FOO') =~ /bar/"&gt;
+    La condition est v&eacute;rifi&eacute;e
+&lt;/If&gt;
+
+# V&eacute;rifie le r&eacute;sultat de la recherche d'une correspondance d'URI dans un
+# contexte de r&eacute;pertoire avec l'option -f
+&lt;Directory /var/www&gt;
+    AddEncoding x-gzip gz
+&lt;If "-f '%{REQUEST_FILENAME}.unzipme' &amp;&amp; ! %{HTTP:Accept-Encoding} =~ /gzip/"&gt;
+      SetOutputFilter INFLATE
+&lt;/If&gt;
+&lt;/Directory&gt;
+
+# Exemples de fonctions dans un contexte bool&eacute;en
+&lt;If "md5('foo') == 'acbd18db4cc2f85cedef654fccc4a4d8'"&gt;
+  Header set checksum-matched true
+&lt;/If&gt;
+&lt;If "md5('foo') == replace('md5:XXXd18db4cc2f85cedef654fccc4a4d8', 'md5:XXX', 'acb')&gt;
+  Header set checksum-matched-2 true
+&lt;/If&gt;
+
+# Function example in string context
+Header set foo-checksum "expr=%{md5:foo}"
+
+       </highlight>
+</section>
 
 <section id="other">
     <title>Autres</title>
@@ -503,7 +633,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
     <tr><th>Nom</th><th>Alternative</th> <th>Description</th></tr>
     <tr><td><code>-in</code></td>
         <td><code>in</code></td>
-        <td>cha&icirc;ne contenue dans une liste de cha&icirc;nes</td></tr>
+        <td>cha&icirc;ne contenue dans une liste de mots</td></tr>
     <tr><td><code>/regexp/</code></td>
         <td><code>m#regexp#</code></td>
         <td>Expression rationnelle (la seconde forme permet de sp&eacute;cifier
@@ -537,4 +667,10 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
     <directive module="mod_ssl">SSLRequire</directive>.</p>
 </section>
 
+<section id="compatibility">
+    <title>Historique de version</title>
+    <p>La <a href="#functions">fonction</a> <code>req_novary</code> est
+    disponible &agrave; partir de la version 2.4.4 du serveur HTTP Apache.</p>
+</section>
+
 </manualpage>