Commit 52791392 authored by Lucien Gentis's avatar Lucien Gentis
Browse files

XML updates.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1811665 13f79535-47bb-0310-9956-ffa450edef68
parent c0034dce
Loading
Loading
Loading
Loading
+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 -->

@@ -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>&amp;&amp;</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>&amp;&amp;</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
@@ -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        ::= &lt;any OCTET except CTLs&gt;
DIGIT       ::= &lt;any US-ASCII digit "0".."9"&gt;
</pre>
</blockquote>
</section>
@@ -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">
@@ -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>
@@ -687,7 +746,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
&lt;/If&gt;


# 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 à
@@ -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>

@@ -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
+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 -->

@@ -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