Loading docs/manual/expr.xml.fr +99 −31 Original line number Diff line number Diff line <?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: 1788508:1811111 (outdated) --> <!-- English Revision: 1811111 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> Loading Loading @@ -85,30 +85,43 @@ (souvent abrégée en BNF, de l'anglais Backus-Naur Form) est une notation permettant de décrire les règles syntaxiques des langages de programmation. En général, les expressions représentent des valeurs booléennes. Dans ce cas, le point de départ de la BNF est <code>expr</code>. Cependant, certaines directives comme <directive module="mod_log_debug">LogMessage</directive> utilisent comme ce cas, le point de départ de la BNF est <code>cond</code>. Les directives comme <directive module="core">ErrorDocument</directive>, <directive module="mod_authz_core">Require</directive>, <directive module="mod_authn_core">AuthName</directive>, <directive module="mod_alias">Redirect</directive>, <directive module="mod_headers">Header</directive>, <directive module="mod_crypto">CryptoKey</directive> ou <directive module="mod_log_debug">LogMessage</directive> utilisent comme paramètres des expressions qui représentent des chaînes de 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 | expr "<strong>||</strong>" expr | "<strong>(</strong>" expr "<strong>)</strong>" expr ::= cond | string string ::= substring | string substring cond ::= "<strong>true</strong>" | "<strong>false</strong>" | "<strong>!</strong>" cond | cond "<strong>&&</strong>" cond | cond "<strong>||</strong>" cond | comp | "<strong>(</strong>" cond "<strong>)</strong>" comp ::= stringcomp | integercomp | unaryop word | word binaryop word | word "<strong>in</strong>" "<strong>{</strong>" wordlist "<strong>}</strong>" | word "<strong>in</strong>" listfunction | word "<strong>in</strong>" listfunc | word "<strong>=~</strong>" regex | word "<strong>!~</strong>" regex | word "<strong>in</strong>" "<strong>{</strong>" list "<strong>}</strong>" stringcomp ::= word "<strong>==</strong>" word Loading @@ -125,35 +138,65 @@ integercomp ::= word "<strong>-eq</strong>" word | word "<strong>eq</strong>" wo | word "<strong>-gt</strong>" word | word "<strong>gt</strong>" word | word "<strong>-ge</strong>" word | word "<strong>ge</strong>" word wordlist ::= word | wordlist "<strong>,</strong>" word word ::= word "<strong>.</strong>" word | digit word ::= digits | "<strong>'</strong>" string "<strong>'</strong>" | "<strong>"</strong>" string "<strong>"</strong>" | '<strong>"</strong>' string '<strong>"</strong>' | word "<strong>.</strong>" word | variable | rebackref | sub | join | function | "<strong>(</strong>" word "<strong>)</strong>" string ::= stringpart | string stringpart list ::= split | listfunc | "<strong>{</strong>" words "<strong>}</strong>" | "<strong>(</strong>" list "<strong>)</strong>" stringpart ::= cstring substring ::= cstring | variable | rebackref cstring ::= ... digit ::= [0-9]+ variable ::= "<strong>%{</strong>" varname "<strong>}</strong>" | "<strong>%{</strong>" funcname "<strong>:</strong>" funcargs "<strong>}</strong>" | "<strong>%{:</strong>" word "<strong>:}</strong>" | "<strong>%{:</strong>" cond "<strong>:}</strong>" | rebackref sub ::= "<strong>sub</strong>" ["<strong>(</strong>"] regsub "<strong>,</strong>" word ["<strong>)</strong>"] join ::= "<strong>join</strong>" ["<strong>(</strong>"] list ["<strong>)</strong>"] | "<strong>join</strong>" ["<strong>(</strong>"] list "<strong>,</strong>" word ["<strong>)</strong>"] split ::= "<strong>split</strong>" ["<strong>(</strong>"] regany "<strong>,</strong>" list ["<strong>)</strong>"] | "<strong>split</strong>" ["<strong>(</strong>"] regany "<strong>,</strong>" word ["<strong>)</strong>"] function ::= funcname "<strong>(</strong>" words "<strong>)</strong>" rebackref ::= "<strong>$</strong>" [0-9] listfunc ::= listfuncname "<strong>(</strong>" words "<strong>)</strong>" function ::= funcname "<strong>(</strong>" wordlist "<strong>)</strong>" words ::= word | word "<strong>,</strong>" list listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" regex ::= "<strong>/</strong>" regpattern "<strong>/</strong>" [regflags] | "<strong>m</strong>" regsep regpattern regsep [regflags] regsub ::= "<strong>s</strong>" regsep regpattern regsep string regsep [regflags] regany ::= regex | regsub regsep ::= "/" | "#" | "$" | "%" | "^" | "|" | "?" | "!" | "'" | '"' | "," | ";" | ":" | "." | "_" | "-" regflags ::= 1*("i" | "s" | "m" | "g") regpattern ::= cstring ; except enclosing <em>regsep</em> rebackref ::= "<strong>$</strong>" DIGIT digits ::= 1*(DIGIT) cstring ::= 0*(TEXT) TEXT ::= <any OCTET except CTLs> DIGIT ::= <any US-ASCII digit "0".."9"> </pre> </blockquote> </section> Loading Loading @@ -348,6 +391,22 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" <p>Certains modules, comme <module>mod_ssl</module>, définissent des variables supplémentaires.</p> <p>Toute variable peut être insérée dans une <em>chaîne</em>, et ceci non seulement dans les chaînes entre quotes des expressions booléennes, mais aussi dans les expressions littérales issues de la concaténation de chaînes constantes et dynamiques.</p> <p>On peut utiliser ici les variables (temporaires) du style <code>%{:<em>word</em>:}</code> qui permettent d'insérer dans les deux types d'expressions des variables (et des constructions) avec la syntaxe puissante <em>word</em> sans entrer en conflit avec les parties constantes de telles chaînes. Même si la syntaxe <em>word</em> est directement utilisable au sein des expressions booléennes, ces variables sont cependant surtout utiles dans les expressions littérales. Ces variables permettent d'évaluer des expressions rationnelles, des substitutions, de concaténer ou dissocier des chaînes et des listes au sein des expressions littérales, et donc de construire des chaînes complexes dynamiquement.</p> </section> <section id="binop"> Loading Loading @@ -614,8 +673,8 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" <p>En plus des fonctions dont la valeur est une chaîne, il existe aussi des fonctions dont la valeur est une liste, qui acceptent une chaîne comme argument, et renvoient une liste de mots, autrement dit une liste de chaînes. La liste de mot peut être utilisée avec chaîne comme argument, et renvoient une liste , par exemple une liste de chaînes. La liste peut être utilisée avec l'opérateur spécial <code>-in</code>. Les noms de fonctions sont insensibles à la casse. Les modules peuvent fournir des fonctions supplémentaires.</p> Loading Loading @@ -687,7 +746,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" </If> # Function example in string context # Exemple de fonction dans un contexte littéral Header set foo-checksum "expr=%{md5:foo}" # L'exemple suivant retarde l'évaluation de la clause de condition par rapport à Loading @@ -695,6 +754,15 @@ Header set foo-checksum "expr=%{md5:foo}" Header always set CustomHeader my-value "expr=%{REQUEST_URI} =~ m#^/special_path\.php$#" # Ajoute un en-tête permettant d'acheminer le SAN du certificat d'un client vers # un quelconque serveur d'arrière-plan RequestHeader set X-Client-SAN "expr=%{:join PeerExtList('subjectAltName'):}" # Impose la présence de l'adresse IP distante dans le SAN du certificat d'un client Require expr %{REMOTE_ADDR} -in split s/.*?IP Address:([^,]+)/$1/, PeerExtList('subjectAltName') # autre solution : Require expr "IP Address:%{REMOTE_ADDR}" -in split/, /, join PeerExtList('subjectAltName') </highlight> </section> Loading @@ -707,7 +775,7 @@ m#^/special_path\.php$#" <tr><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 mots</td></tr> <td>chaîne contenue dans une liste</td></tr> <tr><td><code>/regexp/</code></td> <td><code>m#regexp#</code></td> <td>Expression rationnelle (la seconde forme permet de spécifier Loading docs/manual/mod/mod_proxy.xml.fr +10 −1 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> <!-- English Revision: 1805323:1810316 (outdated) --> <!-- English Revision: 1810316 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> Loading Loading @@ -317,6 +317,15 @@ ProxyPass "/examples" "http://backend.example.com/examples" timeout=10 </note> <!-- /worker_sharing --> <note type="warning"><title>Nom d'hôte dans l'URL</title> <p>Le nom d'hôte doit commencer par une lettre [a-z]. Par exemple :</p> <highlight language="config"> ProxyPass "/apps" "http://127" </highlight> <p>n'est pas valide et provoquera une erreur si une requête correspond au chemin.</p> </note> <p>Les workers définis explicitement sont de deux sortes : <dfn>workers directs</dfn> et <dfn>workers de répartition (de charge)</dfn>. Ils supportent de nombreux attributs de Loading Loading
docs/manual/expr.xml.fr +99 −31 Original line number Diff line number Diff line <?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: 1788508:1811111 (outdated) --> <!-- English Revision: 1811111 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> Loading Loading @@ -85,30 +85,43 @@ (souvent abrégée en BNF, de l'anglais Backus-Naur Form) est une notation permettant de décrire les règles syntaxiques des langages de programmation. En général, les expressions représentent des valeurs booléennes. Dans ce cas, le point de départ de la BNF est <code>expr</code>. Cependant, certaines directives comme <directive module="mod_log_debug">LogMessage</directive> utilisent comme ce cas, le point de départ de la BNF est <code>cond</code>. Les directives comme <directive module="core">ErrorDocument</directive>, <directive module="mod_authz_core">Require</directive>, <directive module="mod_authn_core">AuthName</directive>, <directive module="mod_alias">Redirect</directive>, <directive module="mod_headers">Header</directive>, <directive module="mod_crypto">CryptoKey</directive> ou <directive module="mod_log_debug">LogMessage</directive> utilisent comme paramètres des expressions qui représentent des chaînes de 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 | expr "<strong>||</strong>" expr | "<strong>(</strong>" expr "<strong>)</strong>" expr ::= cond | string string ::= substring | string substring cond ::= "<strong>true</strong>" | "<strong>false</strong>" | "<strong>!</strong>" cond | cond "<strong>&&</strong>" cond | cond "<strong>||</strong>" cond | comp | "<strong>(</strong>" cond "<strong>)</strong>" comp ::= stringcomp | integercomp | unaryop word | word binaryop word | word "<strong>in</strong>" "<strong>{</strong>" wordlist "<strong>}</strong>" | word "<strong>in</strong>" listfunction | word "<strong>in</strong>" listfunc | word "<strong>=~</strong>" regex | word "<strong>!~</strong>" regex | word "<strong>in</strong>" "<strong>{</strong>" list "<strong>}</strong>" stringcomp ::= word "<strong>==</strong>" word Loading @@ -125,35 +138,65 @@ integercomp ::= word "<strong>-eq</strong>" word | word "<strong>eq</strong>" wo | word "<strong>-gt</strong>" word | word "<strong>gt</strong>" word | word "<strong>-ge</strong>" word | word "<strong>ge</strong>" word wordlist ::= word | wordlist "<strong>,</strong>" word word ::= word "<strong>.</strong>" word | digit word ::= digits | "<strong>'</strong>" string "<strong>'</strong>" | "<strong>"</strong>" string "<strong>"</strong>" | '<strong>"</strong>' string '<strong>"</strong>' | word "<strong>.</strong>" word | variable | rebackref | sub | join | function | "<strong>(</strong>" word "<strong>)</strong>" string ::= stringpart | string stringpart list ::= split | listfunc | "<strong>{</strong>" words "<strong>}</strong>" | "<strong>(</strong>" list "<strong>)</strong>" stringpart ::= cstring substring ::= cstring | variable | rebackref cstring ::= ... digit ::= [0-9]+ variable ::= "<strong>%{</strong>" varname "<strong>}</strong>" | "<strong>%{</strong>" funcname "<strong>:</strong>" funcargs "<strong>}</strong>" | "<strong>%{:</strong>" word "<strong>:}</strong>" | "<strong>%{:</strong>" cond "<strong>:}</strong>" | rebackref sub ::= "<strong>sub</strong>" ["<strong>(</strong>"] regsub "<strong>,</strong>" word ["<strong>)</strong>"] join ::= "<strong>join</strong>" ["<strong>(</strong>"] list ["<strong>)</strong>"] | "<strong>join</strong>" ["<strong>(</strong>"] list "<strong>,</strong>" word ["<strong>)</strong>"] split ::= "<strong>split</strong>" ["<strong>(</strong>"] regany "<strong>,</strong>" list ["<strong>)</strong>"] | "<strong>split</strong>" ["<strong>(</strong>"] regany "<strong>,</strong>" word ["<strong>)</strong>"] function ::= funcname "<strong>(</strong>" words "<strong>)</strong>" rebackref ::= "<strong>$</strong>" [0-9] listfunc ::= listfuncname "<strong>(</strong>" words "<strong>)</strong>" function ::= funcname "<strong>(</strong>" wordlist "<strong>)</strong>" words ::= word | word "<strong>,</strong>" list listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" regex ::= "<strong>/</strong>" regpattern "<strong>/</strong>" [regflags] | "<strong>m</strong>" regsep regpattern regsep [regflags] regsub ::= "<strong>s</strong>" regsep regpattern regsep string regsep [regflags] regany ::= regex | regsub regsep ::= "/" | "#" | "$" | "%" | "^" | "|" | "?" | "!" | "'" | '"' | "," | ";" | ":" | "." | "_" | "-" regflags ::= 1*("i" | "s" | "m" | "g") regpattern ::= cstring ; except enclosing <em>regsep</em> rebackref ::= "<strong>$</strong>" DIGIT digits ::= 1*(DIGIT) cstring ::= 0*(TEXT) TEXT ::= <any OCTET except CTLs> DIGIT ::= <any US-ASCII digit "0".."9"> </pre> </blockquote> </section> Loading Loading @@ -348,6 +391,22 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" <p>Certains modules, comme <module>mod_ssl</module>, définissent des variables supplémentaires.</p> <p>Toute variable peut être insérée dans une <em>chaîne</em>, et ceci non seulement dans les chaînes entre quotes des expressions booléennes, mais aussi dans les expressions littérales issues de la concaténation de chaînes constantes et dynamiques.</p> <p>On peut utiliser ici les variables (temporaires) du style <code>%{:<em>word</em>:}</code> qui permettent d'insérer dans les deux types d'expressions des variables (et des constructions) avec la syntaxe puissante <em>word</em> sans entrer en conflit avec les parties constantes de telles chaînes. Même si la syntaxe <em>word</em> est directement utilisable au sein des expressions booléennes, ces variables sont cependant surtout utiles dans les expressions littérales. Ces variables permettent d'évaluer des expressions rationnelles, des substitutions, de concaténer ou dissocier des chaînes et des listes au sein des expressions littérales, et donc de construire des chaînes complexes dynamiquement.</p> </section> <section id="binop"> Loading Loading @@ -614,8 +673,8 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" <p>En plus des fonctions dont la valeur est une chaîne, il existe aussi des fonctions dont la valeur est une liste, qui acceptent une chaîne comme argument, et renvoient une liste de mots, autrement dit une liste de chaînes. La liste de mot peut être utilisée avec chaîne comme argument, et renvoient une liste , par exemple une liste de chaînes. La liste peut être utilisée avec l'opérateur spécial <code>-in</code>. Les noms de fonctions sont insensibles à la casse. Les modules peuvent fournir des fonctions supplémentaires.</p> Loading Loading @@ -687,7 +746,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" </If> # Function example in string context # Exemple de fonction dans un contexte littéral Header set foo-checksum "expr=%{md5:foo}" # L'exemple suivant retarde l'évaluation de la clause de condition par rapport à Loading @@ -695,6 +754,15 @@ Header set foo-checksum "expr=%{md5:foo}" Header always set CustomHeader my-value "expr=%{REQUEST_URI} =~ m#^/special_path\.php$#" # Ajoute un en-tête permettant d'acheminer le SAN du certificat d'un client vers # un quelconque serveur d'arrière-plan RequestHeader set X-Client-SAN "expr=%{:join PeerExtList('subjectAltName'):}" # Impose la présence de l'adresse IP distante dans le SAN du certificat d'un client Require expr %{REMOTE_ADDR} -in split s/.*?IP Address:([^,]+)/$1/, PeerExtList('subjectAltName') # autre solution : Require expr "IP Address:%{REMOTE_ADDR}" -in split/, /, join PeerExtList('subjectAltName') </highlight> </section> Loading @@ -707,7 +775,7 @@ m#^/special_path\.php$#" <tr><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 mots</td></tr> <td>chaîne contenue dans une liste</td></tr> <tr><td><code>/regexp/</code></td> <td><code>m#regexp#</code></td> <td>Expression rationnelle (la seconde forme permet de spécifier Loading
docs/manual/mod/mod_proxy.xml.fr +10 −1 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> <!-- English Revision: 1805323:1810316 (outdated) --> <!-- English Revision: 1810316 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> Loading Loading @@ -317,6 +317,15 @@ ProxyPass "/examples" "http://backend.example.com/examples" timeout=10 </note> <!-- /worker_sharing --> <note type="warning"><title>Nom d'hôte dans l'URL</title> <p>Le nom d'hôte doit commencer par une lettre [a-z]. Par exemple :</p> <highlight language="config"> ProxyPass "/apps" "http://127" </highlight> <p>n'est pas valide et provoquera une erreur si une requête correspond au chemin.</p> </note> <p>Les workers définis explicitement sont de deux sortes : <dfn>workers directs</dfn> et <dfn>workers de répartition (de charge)</dfn>. Ils supportent de nombreux attributs de Loading