<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
-<!-- English Revision: 1736445 -->
+<!-- English Revision: 1762013 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<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><directive module="mod_crypto">CryptoKey</directive></seealso>
+<seealso><directive module="mod_crypto">CryptoIV</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>
<tr><td><code>TIME_YEAR</code></td>
<td>L'année courante (par exemple <code>2010</code>)</td></tr>
<tr><td><code>TIME_MON</code></td>
- <td>Le mois courant (<code>1</code>, ..., <code>12</code>)</td></tr>
+ <td>Le mois courant (<code>01</code>, ..., <code>12</code>)</td></tr>
<tr><td><code>TIME_DAY</code></td>
- <td>Le jour courant dans le mois</td></tr>
+ <td>Le jour courant dans le mois (<code>01</code>, ...)</td></tr>
<tr><td><code>TIME_HOUR</code></td>
- <td>Les heures de la date courante (<code>0</code>, ...,
+ <td>Les heures de la date courante (<code>00</code>, ...,
<code>23</code>)</td></tr>
<tr><td><code>TIME_MIN</code></td>
<td>Les minutes de la date courante</td></tr>
<table border="1" style="zebra">
<columnspec><column width=".2"/><column width=".4"/><column width=".4"/></columnspec>
- <tr><th>Nom</th><th>Description</th><th>Restreint</th></tr>
+ <tr><th>Nom</th><th>Description</th><th>Remarques particulières</th></tr>
<tr><td><code>req</code>, <code>http</code></td>
<td>Lit l'en-tête de requête HTTP ; les noms
d'en-tête correspondants peuvent être ajoutés à l'en-tête Vary,
l'exécution de la directive <directive><If></directive>)</td><td></td></tr>
<tr><td><code>reqenv</code></td>
<td>Recherche une variable d'environnement de requête (on
- peut aussi utiliser le raccourci <code>v</code>).</td><td></td></tr>
+ peut aussi utiliser le raccourci <code>v</code>).</td><td>ordonnancement</td></tr>
<tr><td><code>osenv</code></td>
<td>Recherche une variable d'environnement du système
d'exploitation</td><td></td></tr>
<tr><td><code>note</code></td>
- <td>Recherche une note de requête</td><td></td></tr>
+ <td>Recherche une note de requête</td><td>ordonnancement</td></tr>
<tr><td><code>env</code></td>
<td>Renvoie le premier résultat positif de <code>note</code>,
- <code>reqenv</code>, <code>osenv</code></td><td></td></tr>
+ <code>reqenv</code>, <code>osenv</code></td><td>ordonnancement</td></tr>
<tr><td><code>tolower</code></td>
<td>Convertit une chaîne en minuscules</td><td></td></tr>
<tr><td><code>toupper</code></td>
avec un codage hexadécimal</td><td></td></tr>
<tr><td><code>file</code></td>
<td>Lit le contenu d'un fichier (fins de lignes incluses, si
- elles existent)</td><td>oui</td></tr>
+ elles existent)</td><td>limité</td></tr>
<tr><td><code>filemod</code></td>
<td>Renvoie la date de dernière modification d'un fichier (ou 0
si le fichier n'existe pas ou n'est pas un fichier
- régulier)</td><td>oui</td></tr>
+ régulier)</td><td>limité</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>
+ régulier)</td><td>limité</td></tr>
<tr><td><code>ldap</code></td>
<td>Echappe les caractères selon la RFC4514 (Echappement des
noms distinctifs LDAP - DN) et la RFC4515 (Echappement des
</table>
- <p>Les fonctions marquées comme "restreints" ne sont pas disponibles
- avec certains modules comme <module>mod_include</module>.</p>
+ <p>Les fonctions marquées comme "limité" dans la dernière colonne ne sont
+ pas disponibles avec certains modules comme
+ <module>mod_include</module>.</p>
+
+ <p>Les fonctions marquées comme "ordonnancement" dans la dernière colonne
+ nécessitent une attention particulière pour l'ordonnancement des différents
+ composants du serveur, spécialement lorsque la fonction est utilisée au sein
+ d'une directive <<directive module="core">If</directive>> qui est
+ évaluée relativement tôt.</p>
+ <note>
+ <title>Ordonnancement des variables d'environnement</title>
+ Lorsque des variables d'environnement sont évaluées au sein d'une directive
+ <<directive module="core">If</directive>>, il est important de tenir
+ compte du moment où cette évaluation intervient dans le traitement de la
+ requête. Par exemple, toute directive définie en dehors d'un contexte de
+ serveur virtuel (directory, location, htaccess) aura peu de chance d'être
+ déjà exécutée. Ainsi la directive <directive
+ module="mod_setenvif">SetEnvIf</directive> est une directive qui s'exécute
+ avant cette évaluation.
+ <br/>
+ <br/>
+ Lorsque <code>reqenv</code> est utilisé en dehors de la directive
+ <<directive module="core">If</directive>>, l'évaluation survient en
+ général plus tard, mais le moment exact dépend de la directive dans laquelle
+ l'expression a été utilisée.
+ </note>
<p>Lorsque les fonctions <code>req</code> ou <code>http</code> sont
utilisées, le nom d'en-tête sera automatiquement ajouté à l'en-tête
</If>
</Directory>
+# Vérifie l'adresse IP du client
+<If "-R '192.168.1.0/24'">
+ Header set matched true
+</If>
+
# Exemples de fonctions dans un contexte booléen
<If "md5('foo') == 'acbd18db4cc2f85cedef654fccc4a4d8'">
Header set checksum-matched true
# L'exemple suivant retarde l'évaluation de la clause de condition par rapport à
# <If>
-Header always set CustomHeader my-value "expr=%{REQUEST_URI} =~ m#^/special_path.php$#"
+Header always set CustomHeader my-value "expr=%{REQUEST_URI} =~
+m#^/special_path\.php$#"
</highlight>
</section>