]> granicus.if.org Git - apache/blob - docs/manual/mod/core.xml.fr
Regenerate
[apache] / docs / manual / mod / core.xml.fr
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision: 1757920:1758266 (outdated) -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
7
8 <!--
9  Licensed to the Apache Software Foundation (ASF) under one or more
10  contributor license agreements.  See the NOTICE file distributed with
11  this work for additional information regarding copyright ownership.
12  The ASF licenses this file to You under the Apache License, Version 2.0
13  (the "License"); you may not use this file except in compliance with
14  the License.  You may obtain a copy of the License at
15
16      http://www.apache.org/licenses/LICENSE-2.0
17
18  Unless required by applicable law or agreed to in writing, software
19  distributed under the License is distributed on an "AS IS" BASIS,
20  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  See the License for the specific language governing permissions and
22  limitations under the License.
23 -->
24
25 <modulesynopsis metafile="core.xml.meta">
26
27 <name>core</name>
28 <description>Fonctionnalités de base du serveur HTTP Apache toujours
29 disponibles</description>
30 <status>Core</status>
31
32 <directivesynopsis>
33 <name>AcceptFilter</name>
34 <description>Permet d'optimiser la configuration d'une socket pour
35 l'écoute d'un protocole</description>
36 <syntax>AcceptFilter <var>protocole</var> <var>filtre
37 d'acceptation</var></syntax>
38 <contextlist><context>server config</context></contextlist>
39
40 <usage>
41     <p>Cette directive permet d'effectuer une optimisation de la socket
42     d'écoute d'un type de protocole en fonction du système
43     d'exploitation. Le but premier est de faire en sorte que le noyau
44     n'envoie pas de socket au processus du serveur jusqu'à ce que
45     des données soient reçues, ou qu'une requête HTTP complète soit mise
46     en tampon. Seuls les <a
47     href="http://www.freebsd.org/cgi/man.cgi?query=accept_filter&amp;
48     sektion=9">Filtres d'acceptation de FreeBSD</a>, le filtre plus
49     primitif <code>TCP_DEFER_ACCEPT</code> sous Linux, et la version
50     optimisée d'AcceptEx() de Windows sont actuellement supportés.</p>
51
52     <p>L'utilisation de l'argument <code>none</code> va désactiver tout
53     filtre d'acceptation pour ce protocole. Ceci s'avère utile pour les
54     protocoles qui nécessitent l'envoi de données par le serveur en
55     premier, comme <code>ftp:</code> ou <code>nntp</code>:</p>
56     <highlight language="config">
57     AcceptFilter nntp none
58     </highlight>
59
60     <p>Les noms de protocoles par défaut sont <code>https</code> pour le
61     port 443 et <code>http</code> pour tous les autres ports. Pour
62     spécifier un autre protocole à utiliser avec un port en écoute,
63     ajoutez l'argument <var>protocol</var> à la directive <directive
64     module="mpm_common">Listen</directive>.</p>
65
66     <p>Sous FreeBSD, les valeurs par défaut sont :</p>
67     <highlight language="config">
68 AcceptFilter http httpready
69 AcceptFilter https dataready
70     </highlight>
71
72     <p>Le filtre d'acceptation <code>httpready</code> met en tampon des
73     requêtes HTTP entières au niveau du noyau. Quand une requête
74     entière a été reçue, le noyau l'envoie au serveur. Voir la page de
75     manuel de <a
76     href="http://www.freebsd.org/cgi/man.cgi?query=accf_http&amp;
77     sektion=9">accf_http(9)</a> pour plus de détails. Comme les requêtes
78     HTTPS sont chiffrées, celles-ci n'autorisent que le filtre <a
79     href="http://www.freebsd.org/cgi/man.cgi?query=accf_data&amp;
80     sektion=9">accf_data(9)</a>.</p>
81
82     <p>Sous Linux, les valeurs par défaut sont :</p>
83     <highlight language="config">
84 AcceptFilter http data
85 AcceptFilter https data
86     </highlight>
87
88     <p>Le filtre <code>TCP_DEFER_ACCEPT</code> de Linux ne supporte pas
89     la mise en tampon des requêtes http. Toute valeur autre que
90     <code>none</code> active le filtre <code>TCP_DEFER_ACCEPT</code>
91     pour ce protocole. Pour plus de détails, voir la page de
92     manuel Linux de <a
93     href="http://homepages.cwi.nl/~aeb/linux/man2html/man7/
94     tcp.7.html">tcp(7)</a>.</p>
95
96     <p>Sous Windows, les valeurs par défaut sont :</p>
97     <highlight language="config">
98 AcceptFilter http data
99 AcceptFilter https data
100     </highlight>
101
102     <p>Le module MPM pour Windows mpm_winnt utilise la directive
103     AcceptFilter comme commutateur de l'API AcceptEx(), et ne supporte
104     pas la mise en tampon du protocole http. Deux valeurs utilisent
105     l'API Windows AcceptEx() et vont recycler les sockets réseau entre
106     les connexions. <code>data</code> attend jusqu'à ce que les données
107     aient été transmises comme décrit plus haut, et le tampon de données
108     initiales ainsi que les adresses réseau finales sont tous extraits
109     grâce à une seule invocation d'AcceptEx(). <code>connect</code>
110     utilise l'API AcceptEx(), extrait aussi les adresses réseau finales,
111     mais à l'instar de <code>none</code>, la valeur <code>connect</code>
112     n'attend pas la transmission des données initiales.</p>
113
114     <p>Sous Windows, <code>none</code> utilise accept() au lieu
115     d'AcceptEx(), et ne recycle pas les sockets entre les connexions.
116     Ceci s'avère utile pour les interfaces réseau dont le pilote est
117     défectueux, ainsi que pour certains fournisseurs de réseau comme les
118     pilotes vpn, ou les filtres anti-spam, anti-virus ou
119     anti-spyware.</p>
120
121 </usage>
122 <seealso><directive module="core">Protocol</directive></seealso>
123 </directivesynopsis>
124
125 <directivesynopsis>
126 <name>AcceptPathInfo</name>
127 <description>Les ressources acceptent des informations sous forme d'un
128 nom de chemin en fin de requête.</description>
129 <syntax>AcceptPathInfo On|Off|Default</syntax>
130 <default>AcceptPathInfo Default</default>
131 <contextlist><context>server config</context>
132 <context>virtual host</context><context>directory</context>
133 <context>.htaccess</context></contextlist>
134 <override>FileInfo</override>
135
136 <usage>
137
138     <p>Cette directive permet de définir si les requêtes contenant des
139     informations sous forme d'un nom de chemin suivant le nom d'un
140     fichier réel (ou un fichier qui n'existe pas dans un répertoire qui
141     existe) doivent être acceptées ou rejetées. Les scripts peuvent
142     accéder à cette information via la variable d'environnement
143     <code>PATH_INFO</code>.</p>
144
145     <p>Supposons par exemple que <code>/test/</code> pointe vers un
146     répertoire qui ne contient que le fichier <code>here.html</code>.
147     Les requêtes pour <code>/test/here.html/more</code> et
148     <code>/test/nothere.html/more</code> vont affecter la valeur
149     <code>/more</code> à la variable d'environnement
150     <code>PATH_INFO</code>.</p>
151
152     <p>L'argument de la directive <directive>AcceptPathInfo</directive>
153     possède trois valeurs possibles :</p>
154     <dl>
155     <dt><code>Off</code></dt><dd>Une requête ne sera acceptée que si
156     elle correspond à un chemin qui existe. Par conséquent, une requête
157     contenant une information de chemin après le nom de fichier réel
158     comme <code>/test/here.html/more</code> dans l'exemple ci-dessus
159     renverra une erreur "404 NOT FOUND".</dd>
160
161     <dt><code>On</code></dt><dd>Une requête sera acceptée si la partie
162     principale du chemin correspond à un fichier existant. Dans
163     l'exemple ci-dessus <code>/test/here.html/more</code>, la requête
164     sera acceptée si <code>/test/here.html</code> correspond à un nom de
165     fichier valide.</dd>
166
167     <dt><code>Default</code></dt><dd>Le traitement des requêtes est
168     déterminé par le <a
169     href="../handler.html">gestionnaire</a> responsable de la requête.
170     Le gestionnaire de base pour les fichiers normaux rejette par défaut
171     les requêtes avec <code>PATH_INFO</code>. Les gestionnaires qui
172     servent des scripts, comme<a
173     href="mod_cgi.html">cgi-script</a> et <a
174     href="mod_isapi.html">isapi-handler</a>, acceptent en général par
175     défaut les requêtes avec <code>PATH_INFO</code>.</dd>
176     </dl>
177
178     <p>Le but premier de la directive <code>AcceptPathInfo</code> est de
179     vous permettre de remplacer le choix du gestionnaire d'accepter ou
180     de rejeter <code>PATH_INFO</code>. Ce remplacement est nécessaire
181     par exemple, lorsque vous utilisez un <a
182     href="../filter.html">filtre</a>, comme <a
183     href="mod_include.html">INCLUDES</a>, pour générer un contenu basé
184     sur <code>PATH_INFO</code>. Le gestionnaire de base va en général
185     rejeter la requête, et vous pouvez utiliser la configuration
186     suivante pour utiliser un tel script :</p>
187 <highlight language="config">
188 &lt;Files "mypaths.shtml"&gt;
189   Options +Includes
190   SetOutputFilter INCLUDES
191   AcceptPathInfo On
192 &lt;/Files&gt;
193     </highlight>
194     
195
196 </usage>
197 </directivesynopsis>
198
199 <directivesynopsis>
200 <name>AccessFileName</name>
201 <description>Nom du fichier de configuration distribué</description>
202 <syntax>AccessFileName <var>nom-du-fichier</var>
203 [<var>nom-du-fichier</var>] ...</syntax>
204 <default>AccessFileName .htaccess</default>
205 <contextlist><context>server config</context><context>virtual
206 host</context>
207 </contextlist>
208
209 <usage>
210     <p>Au cours du traitement d'une requête, le serveur recherche le
211     premier fichier de configuration existant à partir de la liste
212     de noms dans chaque répertoire composant le chemin du document, à
213     partir du moment où les fichiers de configuration distribués sont <a
214     href="#allowoverride">activés pour ce répertoire</a>. Par exemple
215     :</p>
216
217     <highlight language="config">AccessFileName .acl</highlight>
218
219     <p>avant de renvoyer le document
220     <code>/usr/local/web/index.html</code>, le serveur va rechercher les
221     fichiers <code>/.acl</code>, <code>/usr/.acl</code>,
222     <code>/usr/local/.acl</code> et <code>/usr/local/web/.acl</code>
223     pour y lire d'éventuelles directives, à moins quelles n'aient été
224     désactivées avec</p>
225
226     <highlight language="config">
227 &lt;Directory "/"&gt;
228     AllowOverride None
229 &lt;/Directory&gt;
230     </highlight>
231 </usage>
232 <seealso><directive module="core">AllowOverride</directive></seealso>
233 <seealso><a href="../configuring.html">Fichiers de configuration</a></seealso>
234 <seealso><a href="../howto/htaccess.html">Fichiers .htaccess</a></seealso>
235 </directivesynopsis>
236
237 <directivesynopsis>
238 <name>AddDefaultCharset</name>
239 <description>Paramètre jeu de caractères par défaut à ajouter quand le
240 type de contenu d'une réponse est <code>text/plain</code> ou
241 <code>text/html</code></description>
242 <syntax>AddDefaultCharset On|Off|<var>jeu de caractères</var></syntax>
243 <default>AddDefaultCharset Off</default>
244 <contextlist><context>server config</context>
245 <context>virtual host</context><context>directory</context>
246 <context>.htaccess</context></contextlist>
247 <override>FileInfo</override>
248
249 <usage>
250     <p>Cette directive spécifie une valeur par défaut pour le paramètre
251     jeu de caractères du type de média (le nom d'un codage de
252     caractères) à ajouter à une réponse, si et seulement si le type de
253     contenu de la réponse est soit <code>text/plain</code>, soit
254     <code>text/html</code>. Ceci va remplacer
255     tout jeu de caractères spécifié dans le corps de la réponse via un
256     élément <code>META</code>, bien que cet effet dépende en fait
257     souvent de la configuration du client de l'utilisateur. La
258     définition de <code>AddDefaultCharset Off</code> désactive cette
259     fonctionnalité. <code>AddDefaultCharset On</code> ajoute un jeu de
260     caractères par défaut de <code>iso-8859-1</code>. Toute autre valeur
261     peut être définie via le paramètre <var>jeu de caractères</var>, qui
262     doit appartenir à la liste des <a
263     href="http://www.iana.org/assignments/character-sets">valeurs de
264     jeux de caractères enregistrés par l'IANA</a> à utiliser dans les
265     types de média Internet (types MIME).
266     Par exemple :</p>
267
268     <highlight language="config">AddDefaultCharset utf-8</highlight>
269
270     <p>La directive <directive>AddDefaultCharset</directive> ne doit
271     être utilisée que lorsque toutes les ressources textes auxquelles
272     elle s'applique possèdent le jeu de caractère spécifié, et qu'il est
273     trop contraignant de définir leur jeu de caractères
274     individuellement. Un exemple de ce type est l'ajout du paramètre jeu
275     de caractères aux ressources comportant un contenu généré, comme les
276     scripts CGI hérités qui peuvent être vulnérables à des attaques de
277     type cross-site scripting à cause des données utilisateurs incluses
278     dans leur sortie. Notez cependant qu'une meilleur solution consiste
279     à corriger (ou supprimer) ces scripts, car la définition d'un jeu de
280     caractères par défaut ne protège pas les utilisateurs qui ont activé
281     la fonctionnalité "Détection automatique de l'encodage des
282     caractères" dans leur navigateur.</p>
283 </usage>
284 <seealso><directive module="mod_mime">AddCharset</directive></seealso>
285 </directivesynopsis>
286
287 <directivesynopsis>
288 <name>AllowEncodedSlashes</name>
289 <description>Détermine si les séparateurs de chemin encodés sont
290 autorisés à transiter dans les URLs tels quels</description>
291 <syntax>AllowEncodedSlashes On|Off|NoDecode</syntax>
292 <default>AllowEncodedSlashes Off</default>
293 <contextlist><context>server config</context><context>virtual
294 host</context>
295 </contextlist>
296 <compatibility>L'option NoDecode est disponible depuis la version
297 2.3.12.</compatibility>
298
299 <usage>
300     <p>La directive <directive>AllowEncodedSlashes</directive> permet
301     l'utilisation des URLs contenant des séparateurs de chemin
302     encodés dans la partie chemin
303     (<code>%2F</code> pour <code>/</code> et même <code>%5C</code> pour
304     <code>\</code> sur les systèmes concernés).</p>
305
306     <p>Avec la valeur par défaut, <code>Off</code>, de telles URLs sont
307     refusées et provoquent le renvoi d'une erreur 404 (Not found).</p>
308
309     <p>Avec la valeur <code>On</code>, ces URLs sont acceptées, et les
310     slashes encodés sont décodés comme tout autre caractère codé.</p>
311
312     <p>Avec la valeur <code>NoDecode</code>, ces URLs sont acceptées,
313     mais les slashes codés ne sont pas décodés et laissés dans leur état
314     codé.</p>
315
316     <p>Définir <directive>AllowEncodedSlashes</directive> à
317     <code>On</code> est surtout utile en association avec
318     <code>PATH_INFO</code>.</p>
319
320     <note><title>Note</title>
321       <p>Si le codage des slashes dans la partie chemin est nécessaire,
322       l'utilisation de l'option <code>NoDecode</code> est fortement
323       recommandée par mesure de sécurité. Permettre le décodage des
324       slashes pourrait éventuellement induire l'autorisation de chemins
325       non sûrs.</p>
326     </note>
327 </usage>
328 <seealso><directive module="core">AcceptPathInfo</directive></seealso>
329 </directivesynopsis>
330
331 <directivesynopsis>
332 <name>AllowOverride</name>
333 <description>Types de directives autorisées dans les fichiers
334 <code>.htaccess</code></description>
335 <syntax>AllowOverride All|None|<var>type directive</var>
336 [<var>type directive</var>] ...</syntax>
337 <default>AllowOverride None à partir de la version 2.3.9, AllowOverride
338 All pour les versions antérieures</default>
339 <contextlist><context>directory</context></contextlist>
340
341 <usage>
342     <p>Lorsque le serveur trouve un fichier <code>.htaccess</code> (dont
343     le nom est défini par la directive <directive
344     module="core">AccessFileName</directive>), il doit savoir lesquelles
345     des directives placées dans ce fichier sont autorisées à modifier la
346     configuration préexistante.</p>
347
348     <note><title>Valable seulement dans les sections
349     &lt;Directory&gt;</title>
350     La directive <directive>AllowOverride</directive> ne peut être
351     utilisée que dans les sections <directive type="section"
352     module="core">Directory</directive> définies sans expressions
353     rationnelles, et non dans les sections <directive
354     type="section" module="core">Location</directive>, <directive
355     module="core" type="section">DirectoryMatch</directive> ou
356     <directive type="section" module="core">Files</directive>.
357     </note>
358
359     <p>Lorsque cette directive et la directive <directive
360     module="core">AllowOverrideList</directive> sont définies à <code>None</code>, les
361     fichiers <a href="#accessfilename">.htaccess</a> sont totalement
362     ignorés. Dans ce cas, le serveur n'essaiera même pas de lire les
363     fichiers <code>.htaccess</code> du système de fichiers.</p>
364
365     <p>Lorsque cette directive est définie à <code>All</code>, toute
366     directive valable dans le <a
367     href="directive-dict.html#Context">Contexte</a> .htaccess sera
368     autorisée dans les fichiers <code>.htaccess</code>.</p>
369
370     <p>L'argument <var>type directive</var> peut contenir les
371     groupements de directives suivants :</p>
372
373     <dl>
374       <dt>AuthConfig</dt>
375
376       <dd>
377
378       Permet l'utilisation des directives d'autorisation (<directive
379       module="mod_authz_dbm">AuthDBMGroupFile</directive>,
380       <directive module="mod_authn_dbm">AuthDBMUserFile</directive>,
381       <directive module="mod_authz_groupfile">AuthGroupFile</directive>,
382       <directive module="mod_authn_core">AuthName</directive>,
383       <directive module="mod_authn_core">AuthType</directive>, <directive
384       module="mod_authn_file">AuthUserFile</directive>, <directive
385       module="mod_authz_core">Require</directive>, <em>etc...</em>).</dd>
386
387       <dt>FileInfo</dt>
388
389       <dd>
390       Permet l'utilisation des directives qui contrôlent les types de
391       documents (directives  <directive
392       module="core">ErrorDocument</directive>, <directive
393       module="core">ForceType</directive>, <directive
394       module="mod_negotiation">LanguagePriority</directive>,
395       <directive module="core">SetHandler</directive>, <directive
396       module="core">SetInputFilter</directive>, <directive
397       module="core">SetOutputFilter</directive>, et directives du
398       module <module>mod_mime</module> Add* et Remove*), des metadonnées
399       des documents (<directive
400       module="mod_headers">Header</directive>, <directive
401       module="mod_headers">RequestHeader</directive>, <directive
402       module="mod_setenvif">SetEnvIf</directive>, <directive
403       module="mod_setenvif">SetEnvIfNoCase</directive>, <directive
404       module="mod_setenvif">BrowserMatch</directive>, <directive
405       module="mod_usertrack">CookieExpires</directive>, <directive
406       module="mod_usertrack">CookieDomain</directive>, <directive
407       module="mod_usertrack">CookieStyle</directive>, <directive
408       module="mod_usertrack">CookieTracking</directive>, <directive
409       module="mod_usertrack">CookieName</directive>), des directives du
410       module <module>mod_rewrite</module> directives (<directive
411       module="mod_rewrite">RewriteEngine</directive>, <directive
412       module="mod_rewrite">RewriteOptions</directive>, <directive
413       module="mod_rewrite">RewriteBase</directive>, <directive
414       module="mod_rewrite">RewriteCond</directive>, <directive
415       module="mod_rewrite">RewriteRule</directive>), des directives du
416       module <module>mod_alias</module> directives (<directive
417       module="mod_alias">Redirect</directive>, <directive
418       module="mod_alias">RedirectTemp</directive>, <directive
419       module="mod_alias">RedirectPermanent</directive>, <directive
420       module="mod_alias">RedirectMatch</directive>), et de la directive
421       <directive module="mod_actions">Action</directive> du module
422       <module>mod_actions</module>.
423       </dd>
424
425       <dt>Indexes</dt>
426
427       <dd>
428       Permet l'utilisation des directives qui contrôlent l'indexation
429       des répertoires (<directive
430       module="mod_autoindex">AddDescription</directive>,
431       <directive module="mod_autoindex">AddIcon</directive>, <directive
432       module="mod_autoindex">AddIconByEncoding</directive>,
433       <directive module="mod_autoindex">AddIconByType</directive>,
434       <directive module="mod_autoindex">DefaultIcon</directive>, <directive
435       module="mod_dir">DirectoryIndex</directive>, <directive
436       module="mod_dir">FallbackResource</directive>, <a
437       href="mod_autoindex.html#indexoptions.fancyindexing"><code>FancyIndexing</code></a>,
438       <directive
439       module="mod_autoindex">HeaderName</directive>, <directive
440       module="mod_autoindex">IndexIgnore</directive>, <directive
441       module="mod_autoindex">IndexOptions</directive>, <directive
442       module="mod_autoindex">ReadmeName</directive>,
443       <em>etc...</em>).</dd>
444
445       <dt>Limit</dt>
446
447       <dd>
448       Permet l'utilisation des directives contrôlant l'accès au serveur
449       (<directive
450       module="mod_access_compat">Allow</directive>, <directive
451       module="mod_access_compat">Deny</directive> et <directive
452       module="mod_access_compat">Order</directive>).</dd>
453
454 <!-- TODO - Update this for 2.4 syntax -->
455
456
457
458
459       <dt>Nonfatal=[Override|Unknown|All]</dt>
460
461       <dd>Permet d'utiliser l'option AllowOverride pour rendre non fatales les
462       directives invalides (non reconnues ou non permises) dans les fichiers
463       .htaccess : au lieu de causer une Internal Server Error, les directives
464       non autorisées ou non reconnues seront ignorées et un avertissement
465       enregistré dans le journal : 
466       <ul>
467           <li><strong>Nonfatal=Override</strong> rend les directives
468           interdite par AllowOverride non fatales.</li>
469           <li><strong>Nonfatal=Unknown</strong> rend les directives
470           inconnues non fatales. Sont concernées les erreurs de frappe
471           et les directives implémentées par un module non chargé.</li>
472           <li><strong>Nonfatal=All</strong> rend toutes les directives
473           précédentes non fatales.</li>
474       </ul>
475       <p>Notez qu'une erreur de syntaxe dans une directive valide
476       causera toujours une Internal Server Error.</p>
477       <note type="warning"><title>Sécurité</title>
478           Les erreurs non fatales peuvent être à l'origine de problèmes
479           de sécurité pour les utilisateurs de fichiers .htaccess. Par
480           exemple, si AllowOverride interdit AuthConfig, toute
481           configuration utilisateur destinée à restreindre l'accès à un
482           site ne sera pas prise en compte.
483       </note>
484       </dd>
485
486       <dt>Options[=<var>Option</var>,...]</dt>
487
488       <dd>
489       Permet l'utilisation des directives contrôlant les fonctionnalités
490       spécifiques d'un répertoire (<directive
491       module="core">Options</directive> et <directive
492       module="mod_include">XBitHack</directive>). "Options" doit être
493       suivi d'un signe "égal", puis d'une liste d'options séparées par des
494       virgules (pas d'espaces) ; ces options doivent être définies à
495       l'aide de la commande <directive
496       module="core">Options</directive>.
497
498       <note><title>Désactivation implicite des options</title>
499       <p>Bien que la liste des options disponibles dans les fichiers
500       .htaccess puisse être limitée par cette directive, tant qu'un
501       directive <directive module="core">Options</directive> est
502       autorisée, toute autre option héritée peut être désactivée en
503       utilisant la syntaxe non-relative. En d'autres termes, ce
504       mécanisme ne peut pas forcer une option spécifique à rester
505       <em>activée</em> tout en permettant à toute autre option d'être
506       activée.
507       </p></note>
508
509       <example>
510       AllowOverride Options=Indexes,MultiViews
511       </example>
512       
513       </dd>
514     </dl>
515
516     <p>Exemple :</p>
517
518     <highlight language="config">AllowOverride AuthConfig Indexes</highlight>
519
520     <p>Dans l'exemple ci-dessus, toutes les directives qui ne font
521     partie ni du groupe <code>AuthConfig</code>, ni du groupe
522     <code>Indexes</code>, provoquent une erreur "Internal
523     Server Error".</p>
524
525     <note><p>Pour des raisons de sécurité et de performance, ne
526     définissez pas <code>AllowOverride</code> à autre chose que
527     <code>None</code> dans votre bloc <code>&lt;Directory "/"&gt;</code>.
528     Recherchez plutôt (ou créez) le bloc <code>&lt;Directory&gt;</code>
529     qui se réfère au répertoire où vous allez précisément placer un
530     fichier <code>.htaccess</code>.</p>
531     </note>
532 </usage>
533 <seealso><directive module="core">AccessFileName</directive></seealso>
534 <seealso><directive module="core">AllowOverrideList</directive></seealso>
535 <seealso><a href="../configuring.html">Fichiers de configuration</a></seealso>
536 <seealso><a href="../howto/htaccess.html">Fichiers .htaccess</a></seealso>
537 </directivesynopsis>
538
539 <directivesynopsis>
540 <name>AllowOverrideList</name>
541 <description>Directives autorisées dans les fichiers <code>.htaccess</code></description>
542 <syntax>AllowOverrideList None|<var>directive</var>
543 [<var>directive-type</var>] ...</syntax>
544 <default>AllowOverrideList None</default>
545 <contextlist><context>directory</context></contextlist>
546
547 <usage>
548     <p>Lorsque le serveur trouve un fichier <code>.htaccess</code>
549     (comme spécifié par la directive <directive
550     module="core">AccessFileName</directive>), il doit savoir lesquelles
551     des directives déclarées dans ce fichier peuvent remplacer des
552     directives des fichiers de configuration du serveur.</p>
553
554     <note><title>Seulement disponible dans les sections &lt;Directory&gt;</title>
555     La directive <directive>AllowOverrideList</directive> n'est
556     disponible que dans les sections <directive type="section"
557     module="core">Directory</directive> spécifiées sans expressions
558     rationnelles.
559     </note>
560
561     <p>Lorsque cette directive et la directive <directive
562     module="core">AllowOverride</directive> sont définies à
563     <code>None</code>, les fichiers <a
564     href="#accessfilename">.htaccess</a> sont totalement ignorés. Dans
565     ce cas, le serveur ne cherchera même pas à lire des fichiers
566     <code>.htaccess</code> dans le système de fichiers.</p>
567
568     <p>Example:</p>
569
570     <highlight language="config">
571 AllowOverride None
572 AllowOverrideList Redirect RedirectMatch
573     </highlight>
574
575     <p>Dans l'exemple ci-dessus, seules les directives
576     <code>Redirect</code> et <code>RedirectMatch</code> sont autorisées.
577     Toutes les autres provoqueront une erreur interne du serveur.</p>
578
579     <p>Example:</p>
580
581     <highlight language="config">
582 AllowOverride AuthConfig
583 AllowOverrideList CookieTracking CookieName
584     </highlight>
585
586     <p>Dans l'exemple ci-dessus, la directive <directive
587     module="core">AllowOverride</directive> autorise les directives du
588     groupement <code>AuthConfig</code>, et
589     <directive>AllowOverrideList</directive> n'autorise que deux
590     directives du groupement <code>FileInfo</code>. Toutes les autres
591     provoqueront une erreur interne du serveur.</p>
592 </usage>
593
594 <seealso><directive module="core">AccessFileName</directive></seealso>
595 <seealso><directive module="core">AllowOverride</directive></seealso>
596 <seealso><a href="../configuring.html">Fichiers de configuration</a></seealso>
597 <seealso><a href="../howto/htaccess.html">Fichiers .htaccess</a></seealso>
598 </directivesynopsis>
599
600 <directivesynopsis>
601     <name>AsyncFilter</name>
602     <description>Définit le type de filtrage minimal disponible pour le
603     traitement asynchrone</description>
604     <syntax>AsyncFilter request|connection|network</syntax>
605     <default>AsyncFilter request</default>
606     <contextlist><context>server config</context><context>virtual host</context></contextlist>
607     <compatibility>Disponible à partir de la version 2.5.0 du serveur
608     HTTP Apache</compatibility>
609
610     <usage>
611         <p>Cette directive permet de définir les niveaux minimaux de
612         filtrage disponibles pour le traitement asynchrone. Son
613         utilisation s'avère nécessaire pour le support des filtres
614         externes anciens qui ne géraient pas les meta-conteneurs
615         correctement.</p>
616
617         <p>Si elle est définie à "network", le traitement asynchrone se
618         limitera aux filtrages réseau. Si elle est définie à
619         "connection", tous les filtres de réseau et de connexion seront
620         disponibles pour le traitement asynchrone, y compris
621         <module>mod_ssl</module>. Si elle est définie à  "request", tous
622         les filtres seront disponibles pour le traitement asynchrone.</p>
623     </usage>
624 </directivesynopsis>
625
626 <directivesynopsis>
627 <name>CGIMapExtension</name>
628 <description>Technique permettant de localiser l'interpréteur des
629 scripts CGI</description>
630 <syntax>CGIMapExtension <var>chemin CGI</var> <var>.extension</var></syntax>
631 <contextlist><context>directory</context><context>.htaccess</context>
632 </contextlist>
633 <override>FileInfo</override>
634 <compatibility>NetWare uniquement</compatibility>
635
636 <usage>
637     <p>Cette directive permet de contrôler la manière dont Apache httpd trouve
638     l'interpréteur servant à exécuter les scripts CGI. Par exemple, avec
639     la définition <code>CGIMapExtension sys:\foo.nlm .foo</code>, tous
640     les fichiers scripts CGI possédant une extension <code>.foo</code>
641     seront passés à l'interpréteur FOO.</p>
642 </usage>
643 </directivesynopsis>
644
645 <directivesynopsis>
646 <name>CGIPassAuth</name>
647 <description>Active la transmission d'en-têtes d'autorisation HTTP aux scripts en
648 tant que variables CGI</description>
649 <syntax>CGIPassAuth On|Off</syntax>
650 <default>CGIPassAuth Off</default>
651 <contextlist><context>directory</context><context>.htaccess</context>
652 </contextlist>
653 <override>AuthConfig</override>
654 <compatibility>Disponible à partir de la version 2.4.13 du serveur HTTP
655 Apache</compatibility>
656
657 <usage>
658     <p>La directive <directive>CGIPassAuth</directive> permet aux
659     scripts d'accéder aux en-têtes d'autorisation HTTP tels que
660     <code>Authorization</code>, en-tête nécessaire aux scripts qui
661     implémente une authentification HTTP de base. Normalement, ces
662     en-têtes HTTP sont invisibles pour les scripts car ils leurs
663     permettraient de voir les identifiants et mots de passe
664     utilisés pour accéder au serveur lorsque l'authentification HTTP de
665     base est activée au niveau du serveur web. Cette directive doit être
666     définie à "On" lorsque des scripts sont autorisés à implémenter une
667     authentification HTTP de base.</p>
668
669     <p>Cette directive constitue une alternative à l'option de
670     compilation <code>SECURITY_HOLE_PASS_AUTHORIZATION</code> qui était
671     déjà disponible dans les versions précédentes du serveur HTTP
672     Apache.</p>
673
674     <p>Cette option est prise en compte par tout module qui utilise
675     <code>ap_add_common_vars()</code>, comme <module>mod_cgi</module>,
676     <module>mod_cgid</module>, <module>mod_proxy_fcgi</module>,
677     <module>mod_proxy_scgi</module>, etc... En particulier, elle affecte
678     les modules qui ne traitent pas à proprement parler les requêtes,
679     mais utilisent quand-même cette API, comme
680     <module>mod_include</module> ou <module>mod_ext_filter</module>. Les
681     modules tiers qui n'utilisent pas <code>ap_add_common_vars()</code>
682     peuvent aussi choisir de prendre en compte cette option.</p>
683 </usage>
684 </directivesynopsis>
685
686 <directivesynopsis>
687 <name>CGIVar</name>
688 <description>Contrôle la manière dont certaines variables CGI sont définies</description>
689 <syntax>CGIVar <var>variable</var> <var>rule</var></syntax>
690 <contextlist><context>directory</context><context>.htaccess</context>
691 </contextlist>
692 <override>FileInfo</override>
693 <compatibility>Disponible à partir de la version 2.4.21 du serveur HTTP Apache</compatibility>
694
695 <usage>
696   <p>Cette directive permet de contrôler la manière dont certaines variables CGI
697   sont définies.</p>
698
699   <p>règles <strong>REQUEST_URI</strong> :</p>
700   <dl>
701     <dt><code>original-uri</code> (valeur par défaut)</dt>
702     <dd>La valeur est extraite de la requête originale, et ne tient pas compte
703     des redirections internes ou des sous-requêtes qui pourraient modifier la
704     ressource demandée.</dd>
705     <dt><code>current-uri</code></dt>
706     <dd>La valeur reflète la ressource en cours de traitement ; elle peut être
707     différente de la ressource demandée dans la requête initiale du client suite à
708     d'éventuelles redirections internes ou sous-requêtes.</dd>
709   </dl>
710 </usage>
711 </directivesynopsis>
712
713 <directivesynopsis>
714 <name>ContentDigest</name>
715 <description>Active la génération d'un en-tête <code>Content-MD5</code>
716 dans la réponse HTTP</description>
717 <syntax>ContentDigest On|Off</syntax>
718 <default>ContentDigest Off</default>
719 <contextlist><context>server config</context><context>virtual
720 host</context>
721 <context>directory</context><context>.htaccess</context>
722 </contextlist>
723 <override>Options</override>
724 <status>Expérimental</status>
725
726 <usage>
727     <p>Cette directive active la génération d'un en-tête
728     <code>Content-MD5</code> selon les définitions des RFC 1864 et
729     2616.</p>
730
731     <p>MD5 est un algorithme permettant de générer un condensé (parfois
732     appelé "empreinte") à partir de données d'une taille aléatoire ; le
733     degré de précision est tel que la moindre altération des données
734     d'origine entraîne une altération de l'empreinte.</p>
735
736     <p>L'en-tête <code>Content-MD5</code> permet de vérifier
737     l'intégrité de la réponse HTTP dans son ensemble. Un serveur mandataire
738     ou un client peut utiliser cet en-tête pour rechercher une
739     éventuelle modification accidentelle de la réponse au cours de sa
740     transmission. Exemple d'en-tête :</p>
741
742     <example>
743       Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA==
744     </example>
745
746     <p>Notez que des problèmes de performances peuvent affecter votre
747     serveur, car l'empreinte est générée pour chaque requête (il n'y a
748     pas de mise en cache).</p>
749
750     <p>L'en-tête <code>Content-MD5</code> n'est envoyé qu'avec les
751     documents servis par le module <module>core</module>, à l'exclusion
752     de tout autre module. Ainsi, les documents SSI, les sorties de
753     scripts CGI, et les réponses à des requêtes partielles (byte range)
754     ne comportent pas cet en-tête.</p>
755 </usage>
756 </directivesynopsis>
757
758 <directivesynopsis>
759 <name>DefaultRuntimeDir</name>
760 <description>Répertoire de base des fichiers créés au cours de l'exécution du serveur</description>
761 <syntax>DefaultRuntimeDir <var>chemin-répertoire</var></syntax>
762 <default>DefaultRuntimeDir DEFAULT_REL_RUNTIMEDIR (logs/)</default>
763 <contextlist><context>server config</context></contextlist>
764 <compatibility>Disponible depuis de la version 2.4.2 du serveur HTTP
765 Apache</compatibility>
766
767 <usage>
768     <p>La directive <directive>DefaultRuntimeDir</directive> permet de
769     définir le répertoire dans lequel le serveur va créer les différents
770     fichiers relatifs à son exécution (mémoire partagée, verrous,
771     etc...). Si le chemin spécifié est relatif, le chemin absolu sera
772     généré relativement à la valeur de la directive
773     <directive>ServerRoot</directive>.</p>
774
775     <p><strong>Example</strong></p>
776    <highlight language="config">
777 DefaultRuntimeDir scratch/
778     </highlight>
779
780     <p>La valeur par défaut de la directive
781     <directive>DefaultRuntimeDir</directive> peut être modifiée en
782     changeant la valeur de la macro <code>DEFAULT_REL_RUNTIMEDIR</code>
783     définie à la compilation.</p>
784
785    <p>Note: si la valeur de <directive>ServerRoot</directive> n'a pas
786    été spécifiée avant d'utiliser cette directive, c'est la valeur par
787    défaut de <directive>ServerRoot</directive> qui sera utilisée pour
788    définir la base du répertoire.</p>
789
790 </usage>
791 <seealso>Voir les <a
792 href="../misc/security_tips.html#serverroot">conseils à propos de
793 sésurité</a> pour plus d'informations en vue de définir correctement les
794 permissions sur la racine du serveur <directive>ServerRoot</directive></seealso>
795 </directivesynopsis>
796
797 <directivesynopsis>
798 <name>DefaultType</name>
799 <description>Les seuls effets de cette directive sont des émissions
800 d'avertissements si sa valeur est différente de <code>none</code>. Dans
801 les versions précédentes, DefaultType permettait de spécifier un type de
802 média à assigner par défaut au contenu d'une réponse pour lequel aucun
803 autre type de média n'avait été trouvé.
804 </description>
805 <syntax>DefaultType <var>type média|none</var></syntax>
806 <default>DefaultType none</default>
807 <contextlist><context>server config</context><context>virtual
808 host</context>
809 <context>directory</context><context>.htaccess</context>
810 </contextlist>
811 <override>FileInfo</override>
812 <compatibility>Tous les arguments, excepté <code>none</code>, sont
813 DESACTIVÉS à partir de la version 2.3.0.</compatibility>
814
815 <usage>
816     <p>Cette directive a été désactivée. Pour la compatibilité
817     ascendante avec les anciens fichiers de configuration, elle peut
818     être spécifiée avec la valeur <code>none</code>, c'est à dire sans
819     type de médium par défaut. Par exemple :</p>
820
821     <highlight language="config">DefaultType None</highlight>
822
823     <p><code>DefaultType None</code> n'est disponible que dans les
824     versions d'Apache 2.2.7 et supérieures.</p>
825
826     <p>Utilisez le fichier de configuration mime.types et la directive
827     <directive module="mod_mime">AddType</directive> pour configurer
828     l'assignement d'un type de médium via les extensions de fichiers, ou
829     la directive <directive module="core">ForceType</directive> pour
830     attribuer un type de médium à des ressources spécifiques. Dans le
831     cas contraire, le serveur enverra sa réponse sans champ d'en-tête
832     Content-Type, et le destinataire devra déterminer lui-même le type
833     de médium.</p>
834 </usage>
835 </directivesynopsis>
836
837 <directivesynopsis>
838 <name>Define</name>
839 <description>Permet de définir une variable</description>
840 <syntax>Define <var>nom-paramètre</var> [<var>valeur-paramètre</var>]</syntax>
841 <contextlist><context>server config</context><context>virtual host</context>
842 <context>directory</context></contextlist>
843
844 <usage>
845     <p>Avec un seul paramètre, l'effet de la directive
846     <directive>Define</directive> est identique à celui de l'argument
847     <code>-D</code> du programme <program>httpd</program>. Il permet de
848     modifier le comportement des sections <directive module="core"
849     type="section">IfDefine</directive> sans avoir à ajouter d'argument
850     <code>-D</code> au sein des scripts de démarrage.</p>
851
852     <p>De plus, le second paramètre permet d'affecter une valeur à la
853     variable définie par le premier. Cette variable peut être référencée
854     dans le fichier de configuration via la syntaxe <code>${VAR}</code>.
855     La portée de la variable est toujours globale, et n'est jamais
856     limitée à la section de configuration courante.</p>
857
858     <highlight language="config">
859 &lt;IfDefine TEST&gt;
860   Define servername test.example.com
861 &lt;/IfDefine&gt;
862 &lt;IfDefine !TEST&gt;
863   Define servername www.example.com
864   Define SSL
865 &lt;/IfDefine&gt;
866
867     DocumentRoot "/var/www/${servername}/htdocs"
868     </highlight>
869
870     <p>Le caractère ":" est interdit dans les noms de variables afin
871     d'éviter les conflits avec la syntaxe de la directive <directive
872     module="mod_rewrite">RewriteMap</directive>.</p>
873
874     <p>Si cette directive est définie au sein d'un bloc VirtualHost, les
875     changements qu'elle induit sont visibles de toute directive
876     ultérieure, au delà de tout bloc VirtualHost.</p>
877 </usage>
878 </directivesynopsis>
879
880 <directivesynopsis type="section">
881 <name>Directory</name>
882 <description>Regroupe un ensemble de directives qui ne s'appliquent
883 qu'au répertoire concerné du système de fichiers, à ses
884 sous-répertoires, et à leur contenu.</description>
885 <syntax>&lt;Directory <var>chemin répertoire</var>&gt;
886 ... &lt;/Directory&gt;</syntax>
887 <contextlist><context>server config</context><context>virtual
888 host</context>
889 </contextlist>
890
891 <usage>
892     <p>Les balises <directive type="section">Directory</directive> et
893     <code>&lt;/Directory&gt;</code> permettent de regrouper un ensemble
894     de directives qui ne s'appliquent qu'au répertoire précisé,
895     à ses sous-répertoires, et aux fichiers situés dans ces
896     sous-répertoires. Toute directive
897     autorisée dans un contexte de répertoire peut être utilisée.
898     <var>chemin répertoire</var> est soit le chemin absolu d'un
899     répertoire, soit une chaîne de caractères avec caractères génériques
900     utilisant la comparaison Unix de style shell. Dans une chaîne de
901     caractères avec caractères génériques, <code>?</code> correspond à
902     un caractère quelconque, et <code>*</code> à toute chaîne de
903     caractères. Les intervalles de caractères <code>[]</code> sont aussi
904     autorisés. Aucun caractère générique ne peut remplacer le caractère
905     `/', si bien que l'expression <code>&lt;Directory
906     "/*/public_html"&gt;</code> ne conviendra pas pour le chemin
907      * <code>/home/user/public_html</code>, alors que <code>&lt;Directory
908     "/home/*/public_html"&gt;</code> conviendra. Exemple :</p>
909
910     <highlight language="config">
911 &lt;Directory "/usr/local/httpd/htdocs"&gt;
912   Options Indexes FollowSymLinks
913 &lt;/Directory&gt;
914     </highlight>
915
916     <p>Les chemins de répertoires contenant des espaces <em>doivent</em> être
917     entourés de guillemets afin d'empêcher l'interprétation de ces
918     espaces comme fins d'arguments.</p>
919
920     <note>
921       <p>Soyez prudent avec l'argument <var>chemin répertoire</var> : il
922       doit correspondre exactement au chemin du système de fichier
923       qu'Apache httpd utilise pour accéder aux fichiers. Les directives
924       comprises dans une section <code>&lt;Directory&gt;</code> ne
925       s'appliqueront pas aux fichiers du même répertoire auxquels on
926       aura accédé via un chemin différent, per exemple via un lien
927       symbolique.</p>
928     </note>
929
930     <p> Les <glossary ref="regex">Expressions rationnelles</glossary>
931     peuvent aussi être utilisées en ajoutant le caractère
932     <code>~</code>. Par exemple :</p>
933
934     <highlight language="config">
935 &lt;Directory ~ "^/www/[0-9]{3}"&gt;
936
937 &lt;/Directory&gt;
938 </highlight>
939
940     <p>pourra correspondre à tout répertoire situé dans /www/ et dont le
941     nom se compose de trois chiffres.</p>
942
943     <p>Si plusieurs sections <directive
944     type="section">Directory</directive> (sans expression rationnelle)
945     correspondent au répertoire (ou à un de ses parents) qui contient le
946     document, les directives de la section <directive
947     type="section">Directory</directive> dont le chemin est le plus
948     court sont appliquées en premier, en s'intercalant avec les
949     directives des fichiers <a href="#accessfilename">.htaccess</a>. Par
950     exemple, avec</p>
951
952     <highlight language="config">
953 &lt;Directory "/"&gt;
954   AllowOverride None
955 &lt;/Directory&gt;
956
957 &lt;Directory "/home"&gt;
958   AllowOverride FileInfo
959 &lt;/Directory&gt;
960     </highlight>
961
962     <p>l'accès au document <code>/home/web/dir/doc.html</code> emprunte
963     le chemin suivant :</p>
964
965     <ul>
966       <li>Aplication de la directive <code>AllowOverride None</code>
967       (qui désactive les fichiers <code>.htaccess</code>).</li>
968
969       <li>Application de la directive <code>AllowOverride
970       FileInfo</code> (pour le répertoire <code>/home</code>).</li>
971
972       <li>Application de toute directive <code>FileInfo</code> qui se
973       trouverait dans d'éventuels fichiers <code>/home/.htaccess</code>,
974       <code>/home/web/.htaccess</code> ou
975       <code>/home/web/dir/.htaccess</code>, dans cet ordre.</li>
976     </ul>
977
978     <p>Les directives associées aux répertoires sous forme d'expressions
979     rationnelles ne sont prises en compte qu'une fois toutes les
980     directives des sections sans expressions rationnelles appliquées.
981     Alors, tous les répertoires avec expressions rationnelles sont
982     testés selon l'ordre dans lequel ils apparaissent dans le fichier de
983     configuration. Par exemple, avec</p>
984
985     <highlight language="config">
986 &lt;Directory ~ "abc$"&gt;
987   # ... directives ici ...
988 &lt;/Directory&gt;
989     </highlight>
990
991     <p>la section avec expression rationnelle ne sera prise en compte
992     qu'après les sections <directive
993     type="section">Directory</directive> sans expression rationnelle
994     et les fichiers <code>.htaccess</code>. Alors, l'expression
995     rationnelle conviendra pour <code>/home/abc/public_html/abc</code>
996     et la section <directive type="section">Directory</directive>
997     correspondante s'appliquera.</p>
998
999    <p><strong>Notez que la politique d'accès par défaut
1000    dans les sections <code>&lt;Directory "/"&gt;</code> consiste à
1001    autoriser tout accès sans restriction. Ceci signifie qu'Apache httpd va servir tout fichier
1002    correspondant à une URL. Il est recommandé de modifier cette
1003    situation à l'aide d'un bloc du style</strong></p>
1004
1005     <highlight language="config">
1006 &lt;Directory "/"&gt;
1007   Require all denied
1008 &lt;/Directory&gt;
1009     </highlight>
1010
1011     <p><strong>puis d'affiner la configuration pour les répertoires que vous
1012     voulez rendre accessibles. Voir la page <a
1013     href="../misc/security_tips.html">Conseils à propos de sécurité</a>
1014     pour plus de détails.</strong></p>
1015
1016     <p>Les sections <directive type="section">Directory</directive> se situent
1017     dans le fichier <code>httpd.conf</code>. Les directives <directive
1018     type="section">Directory</directive> ne peuvent pas être imbriquées
1019     et ne sont pas autorisées dans les sections <directive module="core"
1020     type="section">Limit</directive> ou <directive module="core"
1021     type="section">LimitExcept</directive>.</p>
1022 </usage>
1023 <seealso><a href="../sections.html">Comment fonctionnent les sections
1024 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour des
1025 explications à propos de la manière dont ces différentes sections se
1026 combinent entre elles à la réception d'une requête</seealso>
1027 </directivesynopsis>
1028
1029 <directivesynopsis type="section">
1030 <name>DirectoryMatch</name>
1031 <description>Regroupe des directives qui s'appliquent au contenu de répertoires
1032 du système de fichiers correspondant à une expression rationnelle</description>
1033 <syntax>&lt;DirectoryMatch <var>regex</var>&gt;
1034 ... &lt;/DirectoryMatch&gt;</syntax>
1035 <contextlist><context>server config
1036 </context><context>virtual host</context>
1037 </contextlist>
1038
1039 <usage>
1040     <p>Les balises <directive type="section">DirectoryMatch</directive>
1041     et <code>&lt;/DirectoryMatch&gt;</code> permettent de regrouper un
1042     ensemble de directives qui ne s'appliqueront qu'au répertoire
1043     précisé (et aux fichiers qu'il contient), comme pour la section <directive
1044     module="core" type="section">Directory</directive>. Cependant, le
1045     répertoire est précisé sous la forme d'une <glossary
1046     ref="regex">expression rationnelle</glossary>. Par exemple :</p>
1047
1048     <highlight language="config">
1049 &lt;DirectoryMatch "^/www/(.+/)?[0-9]{3}/"&gt;
1050     # ...
1051 &lt;/DirectoryMatch&gt;
1052 </highlight>
1053
1054     <p>convient pour les sous-répertoires de <code>/www/</code> dont
1055     le nom se compose de trois chiffres.</p>
1056
1057     <note><title>Compatibilité</title>
1058       Avant la version 2.3.9, cette directive s'appliquait aussi aux
1059       sous-répertoires (comme la directive <directive module="core"
1060       type="section">Directory</directive>), et ne tenait pas compte du
1061       symbole de fin de ligne ($). Depuis la version 2.3.9, seuls les
1062       répertoires qui correspondent à l'expression sont affectés par les
1063       directives contenues dans la section.
1064     </note>
1065
1066     <note><title>slash de fin</title>
1067       Cette directive s'applique aux requêtes pour des répertoires avec
1068       ou sans slash de fin ; les expressions contenant un symbole de fin
1069       de ligne ($) doivent donc faire l'objet d'une attention
1070       particulière.
1071     </note>
1072
1073     <p>A partir de la version 2.4.8, les groupes nommés et les
1074     références arrières sont extraits et enregistrés dans
1075     l'environnement avec leur nom en majuscules et préfixé
1076     par "MATCH_". Ceci permet
1077     de référencer des URLs dans des <a href="../expr.html">expressions</a>
1078     ou au sein de modules comme <module>mod_rewrite</module>. Pour
1079     éviter toute confusion, les références arrières numérotées (non
1080     nommées) sont ignorées. Vous devez utiliser à la place des groupes
1081     nommés.</p>
1082
1083 <highlight language="config">
1084 &lt;DirectoryMatch "^/var/www/combined/(?&lt;sitename&gt;[^/]+)"&gt;
1085     Require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
1086 &lt;/DirectoryMatch&gt;
1087 </highlight>    
1088 </usage>
1089 <seealso><directive type="section" module="core">Directory</directive>
1090 pour une description de la manière dont les expressions rationnelles
1091 sont traitées en présence d'autres sections <directive
1092 type="section">Directory</directive> sans expressions rationnelles</seealso>
1093 <seealso><a
1094 href="../sections.html">Comment fonctionnent les sections
1095 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
1096 explication à propos de la manière dont ces différentes sections se
1097 combinent entre elles à la réception d'une requête</seealso>
1098 </directivesynopsis>
1099
1100 <directivesynopsis>
1101 <name>DocumentRoot</name>
1102 <description>Racine principale de l'arborescence des documents visible
1103 depuis Internet</description>
1104 <syntax>DocumentRoot <var>chemin répertoire</var></syntax>
1105 <default>DocumentRoot "/usr/local/apache/htdocs"</default>
1106 <contextlist><context>server config</context><context>virtual
1107 host</context>
1108 </contextlist>
1109
1110 <usage>
1111     <p>Cette directive permet de définir le répertoire à partir duquel
1112     <program>httpd</program> va servir les fichiers. S'il ne correspond
1113     pas à un <directive module="mod_alias">Alias</directive>, le chemin
1114     de l'URL sera ajouté par le serveur à la racine des documents afin
1115     de construire le chemin du document recherché. Exemple :</p>
1116
1117     <highlight language="config">DocumentRoot "/usr/web"</highlight>
1118
1119     <p>un accès à <code>http://my.example.com/index.html</code> se
1120     réfère alors à <code>/usr/web/index.html</code>. Si <var>chemin
1121     répertoire</var> n'est pas un chemin absolu, il est considéré comme
1122     relatif au chemin défini par la directive <directive
1123     module="core">ServerRoot</directive>.</p>
1124
1125     <p>Le répertoire défini par la directive
1126     <directive>DocumentRoot</directive> ne doit pas comporter de slash
1127     final.</p>
1128 </usage>
1129 <seealso><a href="../urlmapping.html#documentroot">Mise en
1130 correspondance des URLs avec le système de fichiers</a></seealso>
1131 </directivesynopsis>
1132
1133 <directivesynopsis type="section">
1134 <name>Else</name>
1135 <description>Contient des directives qui ne s'appliquent que si la
1136 condition correspondant à la section <directive type="section"
1137 module="core">If</directive> ou <directive type="section"
1138 module="core">ElseIf</directive> précédente n'est pas satisfaite par la
1139 requête à l'exécution</description>
1140 <syntax>&lt;Else&gt; ... &lt;/Else&gt;</syntax>
1141 <contextlist><context>server config</context><context>virtual host</context>
1142 <context>directory</context><context>.htaccess</context>
1143 </contextlist>
1144 <override>All</override>
1145
1146 <usage>
1147     <p>La section <directive type="section">Else</directive> applique
1148     les directives qu'elle contient si et seulement si les conditions
1149     correspondant à la section <directive type="section">If</directive>
1150     ou <directive type="section">ElseIf</directive> immédiatement
1151     supérieure et dans la même portée n'ont pas été satisfaites. Par
1152     exemple, dans :</p>
1153
1154     <highlight language="config">
1155 &lt;If "-z req('Host')"&gt;
1156   # ...
1157 &lt;/If&gt;
1158 &lt;Else&gt;
1159   # ...
1160 &lt;/Else&gt;
1161     </highlight>
1162
1163     <p>La condition de la section <directive
1164     type="section">If</directive> serait satisfaite pour les requêtes
1165     HTTP/1.0 sans en-tête <var>Host:</var>, alors que celle de la section
1166     <directive type="section">Else</directive> le serait pour les
1167     requêtes comportant un en-tête <var>Host:</var>.</p>
1168
1169 </usage>
1170 <seealso><directive type="section" module="core">If</directive></seealso>
1171 <seealso><directive type="section" module="core">ElseIf</directive></seealso>
1172 <seealso><a href="../sections.html">Fonctionnement des sections &lt;Directory&gt;, &lt;Location&gt;,
1173     &lt;Files&gt;</a> pour une explication de la manière dont ces
1174     différentes section se combinent entre elles lorsqu'une requête est
1175     reçue. Les directives <directive type="section">If</directive>,
1176     <directive type="section">ElseIf</directive>, et <directive
1177     type="section">Else</directive> s'appliquent en dernier.</seealso>
1178 </directivesynopsis>
1179
1180 <directivesynopsis type="section">
1181 <name>ElseIf</name>
1182 <description>Contient des directives qui ne s'appliquent que si la
1183 condition correspondante est satisfaite par une requête à l'exécution,
1184 alors que la condition correspondant à la section <directive
1185 type="section" module="core">If</directive> ou <directive
1186 type="section">ElseIf</directive> précédente ne l'était pas.</description>
1187 <syntax>&lt;ElseIf <var>expression</var>&gt; ... &lt;/ElseIf&gt;</syntax>
1188 <contextlist><context>server config</context><context>virtual host</context>
1189 <context>directory</context><context>.htaccess</context>
1190 </contextlist>
1191 <override>All</override>
1192
1193 <usage>
1194     <p>La section <directive type="section">ElseIf</directive> applique
1195     les directives qu'elle contient si et seulement si d'une part la
1196     condition correspondante est satisfaite, et d'autre part la condition
1197     correspondant à la section <directive type="section">If</directive>
1198     ou <directive type="section">ElseIf</directive> de la même portée ne
1199     l'est pas. Par exemple, dans :</p>
1200
1201     <highlight language="config">
1202 &lt;If "-R '10.1.0.0/16'"&gt;
1203   #...
1204 &lt;/If&gt;
1205 &lt;ElseIf "-R '10.0.0.0/8'"&gt;
1206   #...
1207 &lt;/ElseIf&gt;
1208 &lt;Else&gt;
1209   #...
1210 &lt;/Else&gt;
1211     </highlight>
1212
1213     <p>La condition correspondant à la section <directive
1214     type="section">ElseIf</directive> est satisfaite si l'adresse
1215     distante de la requête appartient au sous-réseau 10.0.0.0/8, mais
1216     pas si elle appartient au sous-réseau 10.1.0.0/16.</p>
1217
1218 </usage>
1219 <seealso><a href="../expr.html">Les expressions dans le serveur HTTP
1220 Apache</a>, pour une référence complète et d'autres exemples.</seealso>
1221 <seealso><directive type="section" module="core">If</directive></seealso>
1222 <seealso><directive type="section" module="core">Else</directive></seealso>
1223 <seealso><a href="../sections.html">Fonctionnement des sections &lt;Directory&gt;, &lt;Location&gt;,
1224     &lt;Files&gt;</a> pour une explication de la manière dont ces
1225     différentes section se combinent entre elles lorsqu'une requête est
1226     reçue. Les directives <directive type="section">If</directive>,
1227     <directive type="section">ElseIf</directive>, et <directive
1228     type="section">Else</directive> s'appliquent en dernier.</seealso>
1229 </directivesynopsis>
1230
1231 <directivesynopsis>
1232 <name>EnableMMAP</name>
1233 <description>Utilise la projection en mémoire (Memory-Mapping) pour
1234 lire les fichiers pendant qu'ils sont servis</description>
1235 <syntax>EnableMMAP On|Off</syntax>
1236 <default>EnableMMAP On</default>
1237 <contextlist><context>server config</context><context>virtual
1238 host</context>
1239 <context>directory</context><context>.htaccess</context>
1240 </contextlist>
1241 <override>FileInfo</override>
1242
1243 <usage>
1244     <p>Cette directive définit si <program>httpd</program> peut utiliser
1245     la projection en mémoire (Memory-Mapping) quand il doit lire le contenu
1246     d'un fichier pendant qu'il est servi. Par défaut, lorsque le
1247     traitement d'une requête requiert l'accès aux données contenues dans
1248     un fichier -- par exemple, pour servir un fichier interprété par le
1249     serveur à l'aide de <module>mod_include</module> -- Apache httpd projette
1250     le fichier en mémoire si le système d'exploitation le permet.</p>
1251
1252     <p>Cette projection en mémoire induit parfois une amélioration des
1253     performances. Sur certains systèmes cependant, il est préférable de
1254     désactiver la projection en mémoire afin d'éviter certains problèmes
1255     opérationnels :</p>
1256
1257     <ul>
1258     <li>Sur certains systèmes multi-processeurs, la projection en
1259     mémoire peut dégrader les performances du programme
1260     <program>httpd</program>.</li>
1261     <li>S'il fait l'objet d'une projection en mémoire par
1262     <program>httpd</program>, la suppression ou la troncature d'un
1263     fichier peut provoquer un crash de <program>httpd</program> avec une
1264     erreur de segmentation.</li>
1265     </ul>
1266
1267     <p>Pour les configurations de serveur sujettes à ce genre de
1268     problème, il est préférable de désactiver la projection en mémoire
1269     des fichiers servis en spécifiant :</p>
1270     
1271     <highlight language="config">EnableMMAP Off</highlight>
1272
1273     <p>Pour les montages NFS, cette fonctionnalité peut être
1274     explicitement désactivée pour les fichiers concernés en spécifiant
1275     :</p>
1276
1277     <highlight language="config">
1278 &lt;Directory "/path-to-nfs-files"&gt;
1279   EnableMMAP Off
1280 &lt;/Directory&gt;
1281     </highlight>
1282 </usage>
1283 </directivesynopsis>
1284
1285 <directivesynopsis>
1286 <name>EnableSendfile</name>
1287 <description>Utilise le support sendfile du noyau pour servir les
1288 fichiers aux clients</description>
1289 <syntax>EnableSendfile On|Off</syntax>
1290 <default>EnableSendfile Off</default>
1291 <contextlist><context>server config</context><context>virtual
1292 host</context>
1293 <context>directory</context><context>.htaccess</context>
1294 </contextlist>
1295 <override>FileInfo</override>
1296 <compatibility>Par défaut à Off depuis la version 2.3.9.</compatibility>
1297
1298 <usage>
1299     <p>Cette directive définit si le programme <program>httpd</program>
1300     peut utiliser le support sendfile du noyau pour transmettre le
1301     contenu des fichiers aux clients. Par défaut, lorsque le traitement
1302     d'une requête ne requiert pas l'accès aux données contenues dans un
1303     fichier -- par exemple, pour la transmission d'un fichier statique
1304     -- Apache httpd utilise sendfile pour transmettre le contenu du fichier
1305     sans même lire ce dernier, si le système d'exploitation le
1306     permet.</p>
1307
1308     <p>Ce mécanisme sendfile évite la séparation des opérations de
1309     lecture et d'envoi, ainsi que les réservations de tampons. sur
1310     certains systèmes cependant, ou sous certains systèmes de fichiers,
1311     il est préférable de désactiver cette fonctionnalité afin d'éviter
1312     certains problèmes opérationnels :</p>
1313
1314     <ul>
1315     <li>Certains systèmes peuvent présenter un support sendfile
1316     défectueux que le système de compilation n'a pas détecté, en
1317     particulier si les exécutables ont été compilés sur une autre
1318     machine, puis copiés sur la première avec un support sendfile
1319     défectueux.</li>
1320     <li>Sous Linux, l'utilisation de sendfile induit des bogues lors de
1321     la récupération des paquets de vérification TCP (TCP-checksum) avec
1322     certaines cartes réseau lorsqu'on utilise IPv6.</li>
1323     <li>Sous Linux sur Itanium, <code>sendfile</code> peut s'avérer incapable de
1324     traiter les fichiers de plus de 2 Go.</li>
1325     <li>Avec un montage réseau de <directive
1326     module="core">DocumentRoot</directive> (par exemple NFS, SMB, CIFS,
1327     FUSE), le
1328     noyau peut s'avérer incapable de servir un fichier de ce montage
1329     réseau en passant par son propre cache.</li>
1330     </ul>
1331
1332     <p>Pour les configurations de serveur non sujettes à ce genre de
1333     problème, vous pouvez activer cette fonctionnalité en
1334     spécifiant :</p>
1335
1336     <highlight language="config">EnableSendfile On</highlight>
1337
1338     <p>Pour les montages réseau, cette fonctionnalité peut être
1339     explicitement désactivée pour les fichiers concernés en spécifiant
1340     :</p>
1341
1342     <highlight language="config">
1343 &lt;Directory "/path-to-nfs-files"&gt;
1344   EnableSendfile Off
1345 &lt;/Directory&gt;
1346     </highlight>
1347     <p>Veuillez noter que la configuration de la directive
1348     <directive>EnableSendfile</directive> dans un contexte de répertoire
1349     ou de fichier .htaccess n'est pas supportée par
1350     <module>mod_cache_disk</module>. Le module ne prend en compte la
1351     définition de <directive>EnableSendfile</directive> que dans un
1352     contexte global.
1353     </p>
1354 </usage>
1355 </directivesynopsis>
1356
1357 <directivesynopsis>
1358 <name>HttpProtocolOptions</name>
1359 <description>Modifie les contraintes sur les messages des requêtes HTTP</description>
1360 <syntax>HttpProtocolOptions [Strict|Unsafe] [StrictURL|UnsafeURL]
1361  [StrictWhitespace|UnsafeWhitespace] [RegisteredMethods|LenientMethods]
1362  [Allow0.9|Require1.0]</syntax>
1363  <default>HttpProtocolOptions Strict StrictURL StrictWhitespace
1364 LenientMethods Allow0.9</default>
1365 <contextlist><context>server config</context>
1366 <context>virtual host</context></contextlist>
1367 <compatibility>Disponible à partir des versions 2.2.32 et 2.4.24 du serveur HTTP
1368 Apache</compatibility>
1369
1370 <usage>
1371     <p>Cette directive permet de modifier les règles qui s'appliquent à la ligne
1372     de requête HTTP (<a
1373     href="https://tools.ietf.org/html/rfc7230#section-3.1.1">RFC 7230
1374     &sect;3.1.1</a>) et aux champs des en-têtes des requêtes HTTP (<a
1375     href="https://tools.ietf.org/html/rfc7230#section-3.2">RFC 7230
1376     &sect;3.2</a>), qui s'appliquent maintenant par défaut ou en utilisant
1377     l'option <code>Strict</code>. Les options <code>Unsafe</code> et
1378     <code>UnsafeURL</code> ont été ajoutées pour pouvoir restaurer les anciens
1379     comportements nécessaires aux anciens modules et applications et aux agents
1380     utilisateurs personnalisés considérés comme obsolètes. Ces règles
1381     s'appliquant avant le traitement de la requête, elles doivent, pour être prises en
1382     compte, être définies
1383     au niveau global ou dans la première section par défaut du serveur virtuel
1384     qui correspond à la requête considérée, par interface IP/port et non par
1385     nom.</p>
1386
1387     <p>Avant l'introduction de cette directive, les interpréteurs de requêtes du
1388     serveur HTTP Apache toléraient un grand nombre de formats en entrée qui
1389     n'étaient pas forcément conformes au protocole. <a
1390     href="https://tools.ietf.org/html/rfc7230#section-9.4">RFC 7230 &sect;9.4
1391     Request Splitting</a> et <a
1392     href="https://tools.ietf.org/html/rfc7230#section-9.5">&sect;9.5 Response
1393     Smuggling</a> ne rappellent que deux des risques potentiels induits par des
1394     requêtes non conformes. Avec l'introduction de cette directive, toutes les
1395     règles de grammaire de la spécification doivent être respectées dans le mode
1396     d'opérations par défaut <code>Strict</code>.</p>
1397
1398     <p><a href="https://tools.ietf.org/html/rfc3986#section-2.2">RFC 3986
1399     &sect;2.2 and 2.3</a> définit les "Caractères réservés" ainsi que les
1400     "Caractères non réservés". Tous les autres caractères doivent être encodés
1401     sous la forme %XX selon la spécification, et la RFC7230 se conforme à ces
1402     instructions. Par défaut, l'option <code>StrictURI</code> rejète toutes les
1403     requêtes contenant des caractères non valides. Cette règle peut être
1404     contournée en utilisant l'option <code>UnsafeURI</code> qui permet de
1405     supporter les agents utilisateur mal conçus.</p>
1406     
1407     
1408
1409     <p>La section de la <a
1410     href="https://tools.ietf.org/html/rfc7230#section-3.5">RFC 7230
1411     &sect;3.5</a> "Message Parsing Robustness" décrit les risques potentiels
1412     induits par l'interprétation de messages contenant des blancs représentés
1413     par un caractère autre que l'espace. Alors que les spécifications indiquent
1414     qu'un et un seul espace sépare l'URI de la méthode et le protocole de l'URI,
1415     et que seuls les espaces et les tabulations horizontales sont autorisés
1416     dans le contenu des en-têtes de requêtes,
1417     le serveur HTTP Apache a toujours toléré des blancs constitués d'un ou
1418     plusieurs espaces ou tabulations horizontales. L'option par défaut
1419     <code>StrictWhitespace</code> permet maintenant de rejeter toute requête non
1420     conforme. L'administrateur peut cependant utiliser l'option
1421     <code>UnsafeWhitespace</code> pour continuer à accepter les requêtes non
1422     conformes, avec un risque important d'interactions avec le mandataire.</p>
1423
1424     <p>Il est fortement déconseillé aux utilisateurs d'utiliser les modes
1425     d'opérations <code>Unsafe</code> et <code>UnsafeURI</code>, ou
1426     <code>UnsafeWhitespace</code>, en particulier pour les déploiements de
1427     serveurs ouverts sur l'extérieur et/ou accessibles au public. Si un moniteur
1428     défectueux ou autre logiciel spécialisé ne s'exécutant que sur un intranet
1429     nécessite une interface, les utilisateurs ne doivent utiliser les options de
1430     type UnSafe qu'en cas de nécessité et uniquement au sein d'un serveur
1431     virtuel bien spécifique et sur un réseau privé.</p>
1432
1433     <p>La consultation des messages enregistrés dans le journal
1434     <directive>ErrorLog</directive>, configuré via la directive
1435     <directive>LogLevel</directive> avec un niveau <code>info</code>, pourra
1436     vous aider à identifier de telles requêtes non conformes ainsi que leur
1437     provenance. Les utilisateurs devront accorder une attention particulière aux
1438     messages d'erreur de type 400 dans le journal access pour détecter les
1439     requêtes apparemment valides mais rejetées.</p>
1440
1441     <p>La section de la <a
1442     href="https://tools.ietf.org/html/rfc7231#section-4.1">RFC 7231
1443     &sect;4.1</a> "Request Methods" "Overview" indique que les serveurs doivent
1444     renvoyer un message d'erreur lorsque la ligne de requête comporte une
1445     méthode non supportée. C'est déjà le cas lorsque l'option
1446     <code>LenientMethods</code> est utilisée, mais les administrateurs ont la
1447     possibilité de limiter les méthodes utilisées via l'option
1448     <code>RegisteredMethods</code> en enregistrant toute méthode non standard
1449     via la directive <directive>RegisterHttpMethod</directive>, en particulier
1450     si l'option <code>Unsafe</code> est utilisée. L'option
1451     <code>RegisteredMethods</code> <strong>ne doit pas</strong> être utilisée
1452     pour les serveurs mandataires car ces derniers ne connaissent pas les
1453     méthodes supportées par les serveurs originaux.</p>
1454
1455     <p>La section de la <a
1456     href="https://tools.ietf.org/html/rfc2616#section-19.6">RFC 2616
1457     &sect;19.6</a> "Compatibility With Previous Versions" encouragait les
1458     serveurs HTTP à supporter les anciennes requêtes HTTP/0.9. La RFC 7230 va
1459     cependant à son encontre via sa préconisation "Le souhait de supporter les
1460     requêtes HTTP/0.9 a été supprimé" et y adjoint des commentaires dans <a
1461     href="https://tools.ietf.org/html/rfc7230#appendix-A">RFC 7230 Appendix
1462     A</a>. A ce titre, l'option <code>Require1.0</code> permet à l'utilisateur
1463     d'inhiber le comportement induit par l'option par défaut
1464     <code>Allow0.9</code>.</p>
1465 </usage>
1466 </directivesynopsis>
1467
1468 <directivesynopsis>
1469 <name>Error</name>
1470 <description>Interrompt la lecture de la configuration avec un message
1471 d'erreur personnalisé</description>
1472 <syntax>Error <var>message</var></syntax>
1473 <contextlist><context>server config</context><context>virtual host</context>
1474 <context>directory</context><context>.htaccess</context>
1475 </contextlist>
1476 <compatibility>à partir de la version 2.3.9</compatibility>
1477
1478 <usage>
1479     <p>Si une erreur peut être détectée dans la configuration, souvent
1480     un module manquant, cette
1481     directive peut être utilisée pour générer un message d'erreur
1482     personnalisé, et interrompre la lecture de la configuration. </p>
1483
1484     <highlight language="config">
1485 # Exemple
1486 # vérification du chargement de mod_include
1487 &lt;IfModule !include_module&gt;
1488   Error "mod_include is required by mod_foo.  Load it with LoadModule."
1489 &lt;/IfModule&gt;
1490
1491 # vérification de la définition de SSL ou (exclusif) NOSSL
1492 &lt;IfDefine SSL&gt;
1493 &lt;IfDefine NOSSL&gt;
1494   Error "Both SSL and NOSSL are defined.  Define only one of them."
1495 &lt;/IfDefine&gt;
1496 &lt;/IfDefine&gt;
1497 &lt;IfDefine !SSL&gt;
1498 &lt;IfDefine !NOSSL&gt;
1499   Error "Either SSL or NOSSL must be defined."
1500 &lt;/IfDefine&gt;
1501 &lt;/IfDefine&gt;
1502     </highlight>
1503
1504 </usage>
1505 </directivesynopsis>
1506
1507 <directivesynopsis>
1508 <name>ErrorDocument</name>
1509 <description>Document que le serveur renvoie au client en cas
1510 d'erreur</description>
1511 <syntax>ErrorDocument <var>code erreur</var> <var>document</var></syntax>
1512 <contextlist><context>server config</context><context>virtual
1513 host</context>
1514 <context>directory</context><context>.htaccess</context>
1515 </contextlist>
1516 <override>FileInfo</override>
1517
1518 <usage>
1519     <p>Apache httpd peut traiter les problèmes et les erreurs de quatre
1520     manières,</p>
1521
1522     <ol>
1523       <li>afficher un simple message d'erreur au contenu fixe</li>
1524
1525       <li>afficher un message personnalisé</li>
1526
1527       <li>rediriger en interne vers un <var>chemin d'URL</var> local pour traiter
1528       le problème ou l'erreur</li>
1529
1530       <li>rediriger vers une <var>URL</var> externe pour traiter
1531       le problème ou l'erreur</li>
1532     </ol>
1533
1534     <p>La première option constitue le comportement par défaut; pour
1535     choisir une des trois autres options, il faut configurer Apache à
1536     l'aide de la directive <directive>ErrorDocument</directive>, suivie
1537     du code de la réponse HTTP et d'une URL ou d'un message. Apache
1538     httpd fournit parfois des informations supplémentaires à propos du
1539     problème ou de l'erreur.</p>
1540
1541     <p>A partir de la version 2.4.13, cette directive peut utiliser la
1542     <a href="../expr.html">syntaxe des expressions</a> pour générer des
1543     chaînes de caractères et des URLs dynamiques.</p>
1544
1545     <p>Les URLs peuvent commencer par un slash (/) pour les chemins web
1546     locaux (relatifs au répertoire défini par la directive <directive
1547     module="core">DocumentRoot</directive>), ou se présenter sous la
1548     forme d'une URL complète que le client pourra résoudre.
1549     Alternativement, un message à afficher par le navigateur pourra être
1550     fourni. Notez que la décision à propos de la nature du paramètre, à
1551     savoir une URL, un chemin ou un message, est prise avant
1552     l'interprétation de toute expression. Exemples :</p>
1553
1554     <highlight language="config">
1555 ErrorDocument 500 http://example.com/cgi-bin/server-error.cgi
1556 ErrorDocument 404 /errors/bad_urls.php
1557 ErrorDocument 401 /subscription_info.html
1558 ErrorDocument 403 "Désolé, nous ne pouvons pas vous accorder l'accès aujourd'hui"
1559 ErrorDocument 403 Forbidden!
1560 ErrorDocument 403 /errors/forbidden.py?referrer=%{escape:%{HTTP_REFERER}}
1561     </highlight>
1562
1563     <p>De plus, on peut spécifier la valeur spéciale <code>default</code>
1564     pour indiquer l'utilisation d'un simple message d'Apache httpd codé en
1565     dur. Bien que non nécessaire dans des circonstances normales, la
1566     spécification de la valeur <code>default</code> va permettre de
1567     rétablir l'utilisation du simple message d'Apache httpd codé en dur pour
1568     les configurations qui sans cela, hériteraient d'une directive
1569     <directive>ErrorDocument</directive> existante.</p>
1570
1571     <highlight language="config">
1572 ErrorDocument 404 /cgi-bin/bad_urls.pl
1573
1574 &lt;Directory "/web/docs"&gt;
1575   ErrorDocument 404 default
1576 &lt;/Directory&gt;
1577     </highlight>
1578
1579     <p>Notez que lorsque vous spécifiez une directive
1580     <directive>ErrorDocument</directive> pointant vers une URL distante
1581     (c'est à dire tout ce qui commence par le préfixe http), le serveur
1582     HTTP Apache va
1583     envoyer une redirection au client afin de lui indiquer où trouver le
1584     document, même dans le cas où ce document se trouve sur le serveur
1585     local. Ceci a de nombreuses conséquences dont la plus importante
1586     réside dans le fait que le client ne recevra pas le code d'erreur
1587     original, mais au contraire un code de statut de redirection. Ceci
1588     peut en retour semer la confusion chez les robots web et divers
1589     clients qui tentent de déterminer la validité d'une URL en examinant
1590     le code de statut. De plus, si vous utilisez une URL distante avec
1591     <code>ErrorDocument 401</code>, le client ne saura pas qu'il doit
1592     demander un mot de passe à l'utilisateur car il ne recevra pas le
1593     code de statut 401. C'est pourquoi, <strong>si vous utilisez une
1594     directive <code>ErrorDocument 401</code>, elle devra faire référence
1595     à un document par le biais d'un chemin local.</strong></p>
1596
1597     <p>Microsoft Internet Explorer (MSIE) ignore par défaut les messages
1598     d'erreur générés par le serveur lorsqu'ils sont trop courts et
1599     remplacent ses propres messages d'erreur "amicaux". Le seuil de
1600     taille varie en fonction du type d'erreur, mais en général, si la
1601     taille de votre message d'erreur est supérieure à 512 octets, il y a
1602     peu de chances pour que MSIE l'occulte, et il sera affiché par ce
1603     dernier. Vous trouverez d'avantage d'informations dans l'article de
1604     la base de connaissances Microsoft <a
1605     href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807"
1606     >Q294807</a>.</p>
1607
1608     <p>Bien que la plupart des messages d'erreur internes originaux
1609     puissent être remplacés, ceux-ci sont cependant conservés dans
1610     certaines circonstances sans tenir compte de la définition de la
1611     directive <directive module="core">ErrorDocument</directive>. En
1612     particulier, en cas de détection d'une requête mal formée, le
1613     processus de traitement normal des requêtes est immédiatement
1614     interrompu, et un message d'erreur interne est renvoyé, ceci afin de
1615     se prémunir contre les problèmes de sécurité liés aux requêtes mal
1616     formées.</p>
1617
1618     <p>Si vous utilisez mod_proxy, il est en général préférable
1619     d'activer <directive
1620     module="mod_proxy">ProxyErrorOverride</directive> afin d'être en
1621     mesure de produire des messages d'erreur personnalisés pour le
1622     compte de votre serveur d'origine. Si vous n'activez pas
1623     ProxyErrorOverride, Apache httpd ne générera pas de messages d'erreur
1624     personnalisés pour le contenu mandaté.</p>
1625
1626 </usage>
1627
1628 <seealso><a href="../custom-error.html">documentation sur la
1629 personnalisation des réponses</a></seealso>
1630 </directivesynopsis>
1631
1632 <directivesynopsis>
1633 <name>ErrorLog</name>
1634 <description>Définition du chemin du journal des erreurs</description>
1635 <syntax> ErrorLog <var>chemin fichier</var>|syslog[:<var>facility</var>]</syntax>
1636 <default>ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows and OS/2)</default>
1637 <contextlist><context>server config</context><context>virtual
1638 host</context>
1639 </contextlist>
1640
1641 <usage>
1642     <p>La directive <directive>ErrorLog</directive> permet de définir le
1643     nom du fichier dans lequel le serveur va journaliser toutes les
1644     erreurs qu'il rencontre. Si le <var>chemin fichier</var> n'est pas
1645     absolu, il est considéré comme relatif au chemin défini par la
1646     directive <directive module="core">ServerRoot</directive>.</p>
1647
1648     <highlight language="config">ErrorLog "/var/log/httpd/error_log"</highlight>
1649
1650     <p>Si le <var>chemin fichier</var> commence par une barre verticale
1651     "<code>(|)</code>", il est considéré comme une commande à lancer pour traiter la
1652     journalisation de l'erreur.</p>
1653
1654     <highlight language="config">ErrorLog "|/usr/local/bin/httpd_errors"</highlight>
1655
1656     <p>Voir les notes à propos des <a href="../logs.html#piped">journaux
1657     redirigés</a> pour plus d'informations.</p>
1658
1659     <p>L'utilisation de <code>syslog</code> à la place d'un nom de
1660     fichier active la journalisation via syslogd(8) si le système le
1661     supporte et si <module>mod_syslog</module> a été chargé. Le
1662     dispositif syslog par défaut est <code>local7</code>,
1663     mais vous pouvez le modifier à l'aide de la syntaxe
1664     <code>syslog:<var>facility</var></code>, où <var>facility</var> peut
1665     être remplacé par un des noms habituellement documentés dans la page
1666     de man syslog(1). Le dispositif syslog <code>local7</code> est
1667     global, et si il est modifié dans un serveur virtuel, le dispositif
1668     final spécifié affecte l'ensemble du serveur</p>
1669
1670     <highlight language="config">ErrorLog syslog:user</highlight>
1671
1672     <p>Des modules additionnels peuvent implémenter leur propre
1673     fournisseur ErrorLog. La syntaxe est similaire à l'exemple
1674     <code>syslog</code> ci-dessus.</p>
1675
1676     <p>SECURITE : Voir le document <a
1677     href="../misc/security_tips.html#serverroot">conseils à propos de
1678     sécurité</a> pour des détails sur les raisons pour lesquelles votre
1679     sécurité peut être compromise si le répertoire contenant les
1680     fichiers journaux présente des droits en écriture pour tout autre
1681     utilisateur que celui sous lequel le serveur est démarré.</p>
1682     <note type="warning"><title>Note</title>
1683       <p>Lors de la spécification d'un chemin de fichier sur les
1684       plates-formes non-Unix, on doit veiller à n'utiliser que des
1685       slashes (/), même si la plate-forme autorise l'utilisation des
1686       anti-slashes (\). Et d'une manière générale, il est recommandé de
1687       n'utiliser que des slashes (/) dans les fichiers de
1688       configuration.</p>
1689     </note>
1690 </usage>
1691 <seealso><directive module="core">LogLevel</directive></seealso>
1692 <seealso><a href="../logs.html">Fichiers journaux du serveur HTTP Apache</a></seealso>
1693 </directivesynopsis>
1694
1695 <directivesynopsis>
1696 <name>ErrorLogFormat</name>
1697 <description>Spécification du format des entrées du journal des erreurs</description>
1698 <syntax> ErrorLogFormat [connection|request] <var>format</var></syntax>
1699 <contextlist><context>server config</context><context>virtual host</context>
1700 </contextlist>
1701
1702 <usage>
1703     <p>La directive <directive>ErrorLogFormat</directive> permet de
1704     spécifier quelles informations supplémentaires vont être enregistrées
1705     dans le journal des erreurs en plus du message habituel.</p>
1706
1707     <highlight language="config">
1708 # Exemple simple
1709 ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"
1710     </highlight>
1711
1712     <p>La spécification de <code>connection</code> ou
1713     <code>request</code> comme premier paramètre permet de définir des
1714     formats supplémentaires, ce qui a pour effet de journaliser des
1715     informations additionnelles lorsque le premier message est
1716     enregistré respectivement pour une connexion ou une requête
1717     spécifique. Ces informations additionnelles ne sont enregistrées
1718     qu'une seule fois par connexion/requête. Si le traitement d'une
1719     connexion ou d'une requête ne génère aucun message dans le journal,
1720     alors aucune information additionnelle n'est enregistrée.</p>
1721
1722     <p>Il peut arriver que certains items de la chaîne de format ne
1723     produisent aucune sortie. Par exemple, l'en-tête Referer n'est
1724     présent que si le message du journal est associé à une requête et s'il
1725     est généré à un moment où l'en-tête Referer a déjà été lu par le
1726     client. Si aucune sortie n'est générée, le comportement par défaut
1727     consiste à supprimer tout ce qui se trouve entre l'espace précédent
1728     et le suivant. Ceci implique que la ligne de journalisation est
1729     divisée en champs ne contenant pas d'espace séparés par des espaces.
1730     Si un item de la chaîne de format ne génère aucune sortie,
1731     l'ensemble du champ est omis. Par exemple, si l'adresse distante
1732     <code>%a</code> du format <code>[%t] [%l] [%a] %M&nbsp;</code> n'est
1733     pas disponible, les crochets qui l'entourent ne seront eux-mêmes pas
1734     enregistrés. Il est possible d'échapper les espaces par un anti-slash
1735     afin qu'ils ne soient pas considérés comme séparateurs de champs.
1736     La combinaison '%&nbsp;' (pourcentage espace) est un délimiteur de
1737     champ de taille nulle qui ne génère aucune sortie.</p>
1738
1739     <p>Ce comportement peut être changé en ajoutant des modificateurs à
1740     l'item de la chaîne de format. Le modificateur <code>-</code>
1741     (moins) provoque l'enregistrement d'un signe moins si l'item
1742     considéré ne génère aucune sortie. Pour les formats à enregistrement
1743     unique par connexion/requête, il est aussi possible d'utiliser le
1744     modificateur <code>+</code> (plus). Si un item ne générant aucune
1745     sortie possède le modificateur plus, la ligne dans son ensemble est
1746     omise.</p>
1747
1748     <p>Un modificateur de type entier permet d'assigner un niveau de
1749     sévérité à un item de format. L'item considéré ne
1750     sera journalisé que si la sévérité du message n'est pas
1751     plus haute que le niveau de sévérité spécifié. Les
1752     valeurs possibles vont de 1 (alert) à 15 (trace8), en passant par 4
1753     (warn) ou 7 (debug).</p>
1754
1755     <p>Par exemple, voici ce qui arriverait si vous ajoutiez des
1756     modificateurs à l'item <code>%{Referer}i</code> qui enregistre le
1757     contenu de l'en-tête <code>Referer</code>.</p>
1758
1759     <table border="1" style="zebra">
1760     <columnspec><column width=".3"/><column width=".7"/></columnspec>
1761
1762     <tr><th>Item modifié</th><th>Signification</th></tr>
1763
1764     <tr>
1765     <td><code>%-{Referer}i</code></td>
1766     <td>Enregistre le caractère <code>-</code> si l'en-tête
1767     <code>Referer</code> n'est pas défini.</td>
1768     </tr>
1769
1770     <tr>
1771     <td><code>%+{Referer}i</code></td>
1772     <td>N'enregistre rien si l'en-tête
1773     <code>Referer</code> n'est pas défini.</td>
1774     </tr>
1775
1776     <tr>
1777     <td><code>%4{Referer}i</code></td>
1778     <td>N'enregistre le contenu de l'en-tête <code>Referer</code> que si
1779     la sévérité du message de journalisation est supérieure à 4.</td>
1780     </tr>
1781
1782     </table>
1783
1784     <p>Certains items de format acceptent des paramètres supplémentaires
1785     entre accolades.</p>
1786
1787     <table border="1" style="zebra">
1788     <columnspec><column width=".2"/><column width=".8"/></columnspec>
1789
1790     <tr><th>Chaîne&nbsp;de&nbsp;format</th> <th>Description</th></tr>
1791
1792     <tr><td><code>%%</code></td>
1793         <td>Le signe pourcentage</td></tr>
1794
1795     <tr><td><code>%a</code></td>
1796         <td>Adresse IP et port clients</td></tr>
1797
1798     <tr><td><code>%{c}a</code></td>
1799         <td>Port et adresse IP sous-jacents du correspondant pour la
1800         connexion (voir le module
1801         <module>mod_remoteip</module>)</td></tr>
1802
1803     <tr><td><code>%A</code></td>
1804         <td>Adresse IP et port locaux</td></tr>
1805
1806     <tr><td><code>%{<em>name</em>}e</code></td>
1807         <td>Variable d'environnement de requête <em>name</em></td></tr>
1808
1809     <tr><td><code>%E</code></td>
1810         <td>Etat d'erreur APR/OS et chaîne</td></tr>
1811
1812     <tr><td><code>%F</code></td>
1813         <td>Nom du fichier source et numéro de ligne de l'appel du
1814         journal</td></tr>
1815
1816     <tr><td><code>%{<em>name</em>}i</code></td>
1817         <td>En-tête de requête <em>name</em></td></tr>
1818
1819     <tr><td><code>%k</code></td>
1820         <td>Nombre de requêtes persistantes pour cette connexion</td></tr>
1821
1822     <tr><td><code>%l</code></td>
1823         <td>Sévérité du message</td></tr>
1824
1825     <tr><td><code>%L</code></td>
1826         <td>Identifiant journal de la requête</td></tr>
1827
1828     <tr><td><code>%{c}L</code></td>
1829         <td>Identifiant journal de la connexion</td></tr>
1830
1831     <tr><td><code>%{C}L</code></td>
1832         <td>Identifiant journal de la connexion si utilisé dans la
1833         portée de la connexion, vide sinon</td></tr>
1834
1835     <tr><td><code>%m</code></td>
1836         <td>Nom du module qui effectue la journalisation du message</td></tr>
1837
1838     <tr><td><code>%M</code></td>
1839         <td>Le message effectif</td></tr>
1840
1841     <tr><td><code>%{<em>name</em>}n</code></td>
1842         <td>Note de requête <em>name</em></td></tr>
1843
1844     <tr><td><code>%P</code></td>
1845         <td>Identifiant du processus courant</td></tr>
1846
1847     <tr><td><code>%T</code></td>
1848         <td>Identifiant du thread courant</td></tr>
1849
1850     <tr><td><code>%{g}T</code></td>
1851         <td>Identifiant unique de thread système du thread courant
1852         (l'identifiant affiché par la commande <code>top</code> par
1853         exemple ; seulement sous Linux pour l'instant)</td></tr>
1854
1855     <tr><td><code>%t</code></td>
1856         <td>L'heure courante</td></tr>
1857
1858     <tr><td><code>%{u}t</code></td>
1859         <td>L'heure courante avec les microsecondes</td></tr>
1860
1861     <tr><td><code>%{cu}t</code></td>
1862         <td>L'heure courante au format compact ISO 8601, avec les
1863         microsecondes</td></tr>
1864
1865     <tr><td><code>%v</code></td>
1866         <td>Le nom de serveur canonique <directive
1867         module="core">ServerName</directive> du serveur courant.</td></tr>
1868
1869     <tr><td><code>%V</code></td>
1870         <td>Le nom de serveur du serveur qui sert la requête en accord
1871         avec la définition de la directive <directive module="core"
1872         >UseCanonicalName</directive>.</td></tr>
1873
1874     <tr><td><code>\&nbsp;</code> (anti-slash espace)</td>
1875         <td>Espace non délimiteur</td></tr>
1876
1877     <tr><td><code>%&nbsp;</code> (pourcentage espace)</td>
1878         <td>Délimiteur de champ (aucune sortie)</td></tr>
1879     </table>
1880
1881     <p>L'item de format identifiant journal <code>%L</code> génère un
1882     identifiant unique pour une connexion ou une requête. Il peut servir
1883     à déterminer quelles lignes correspondent à la même connexion ou
1884     requête ou quelle requête est associée à tel connexion. Un item de
1885     format <code>%L</code> est aussi disponible dans le module
1886     <module>mod_log_config</module>, mais il permet dans ce contexte de
1887     corréler les entrées du journal des accès avec celles du journal des
1888     erreurs. Si le module <module>mod_unique_id</module> est chargé,
1889     c'est son identifiant unique qui sera utilisé comme identifiant de
1890     journal pour les requêtes.</p>
1891
1892     <highlight language="config">
1893 # Exemple (format par défaut pour les MPMs threadés)
1894 ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M%&nbsp;,\&nbsp;referer\&nbsp;%{Referer}i"
1895     </highlight>
1896
1897     <p>Cet exemple renverrait un message d'erreur du style :</p>
1898
1899     <example>
1900     [Thu May 12 08:28:57.652118 2011] [core:error] [pid 8777:tid 4326490112] [client ::1:58619] File does not exist: /usr/local/apache2/htdocs/favicon.ico
1901     </example>
1902
1903     <p>Notez que, comme indiqué plus haut, certains champs sont
1904     totalement supprimés s'ils n'ont pas été définis.</p>
1905
1906     <highlight language="config">
1907 # Exemple (similaire au format 2.2.x)
1908 ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a] %M%&nbsp;,\&nbsp;referer\&nbsp;%{Referer}i"
1909     </highlight>
1910
1911     <highlight language="config">
1912 # Exemple avancé avec identifiants journal de requête/connexion
1913 ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"
1914 ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"
1915 ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"
1916 ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"
1917 ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"
1918     </highlight>
1919
1920 </usage>
1921 <seealso><directive module="core">ErrorLog</directive></seealso>
1922 <seealso><directive module="core">LogLevel</directive></seealso>
1923 <seealso><a href="../logs.html">Fichiers journaux du serveur HTTP Apache</a></seealso>
1924 </directivesynopsis>
1925
1926 <directivesynopsis>
1927 <name>ExtendedStatus</name>
1928 <description>Extrait des informations d'état étendues pour chaque
1929 requête</description>
1930 <syntax>ExtendedStatus On|Off</syntax>
1931 <default>ExtendedStatus Off</default>
1932 <contextlist><context>server config</context></contextlist>
1933
1934 <usage>
1935
1936         <p>Cette option permet d'extraire des données supplémentaires
1937         concernant la requête en cours de traitement pour un processus
1938         donné, ainsi qu'un résumé d'utilisation ; vous pouvez accéder à
1939         ces variables pendant l'exécution en configurant
1940         <module>mod_status</module>. Notez que d'autres modules sont
1941         susceptibles de s'appuyer sur ce tableau de bord.</p>
1942
1943     <p>Cette directive s'applique au serveur dans son ensemble, et ne
1944     peut pas être activée/désactivée pour un serveur virtuel
1945     particulier. Notez que l'extraction des informations d'état étendues
1946     peut ralentir le serveur. Notez aussi que cette définition ne peut
1947     pas être modifiée au cours d'un redémarrage graceful.</p>
1948
1949     <note>
1950     <p>Notez que le chargement de <module>mod_status</module> définit
1951     automatiquement ExtendedStatus à On, et que d'autres modules tiers
1952     sont susceptibles d'en faire de même. De tels modules ont besoin
1953     d'informations détaillées à propos de l'état de tous les processus.
1954     Depuis la version 2.3.6, <module>mod_status</module> a définit la
1955     valeur par défaut à On, alors qu'elle était à Off dans les versions
1956     antérieures.</p>
1957     </note>
1958
1959 </usage>
1960
1961 </directivesynopsis>
1962
1963 <directivesynopsis>
1964 <name>FileETag</name>
1965 <description>Caractéristiques de fichier utilisées lors de la génération
1966 de l'en-tête de réponse HTTP ETag pour les fichiers statiques</description>
1967 <syntax>FileETag <var>composant</var> ...</syntax>
1968 <default>FileETag MTime Size</default>
1969 <contextlist><context>server config</context><context>virtual
1970 host</context>
1971 <context>directory</context><context>.htaccess</context>
1972 </contextlist>
1973 <override>FileInfo</override>
1974 <compatibility>La valeur par défaut était "INode&nbsp;MTime&nbsp;Size"
1975 dans les versions 2.3.14 et antérieures.</compatibility>
1976
1977 <usage>
1978     <p>
1979     La directive <directive>FileETag</directive> définit les
1980     caractéristiques de fichier utilisées lors de la génération de
1981     l'en-tête de réponse HTTP <code>ETag</code> (entity tag) quand le
1982     document est contenu dans un fichier statique(la valeur de
1983     <code>ETag</code>
1984     est utilisée dans le cadre de la gestion du cache pour préserver la
1985     bande passante réseau). La directive
1986     <directive>FileETag</directive> vous permet maintenant de choisir
1987     quelles caractéristiques du fichier vont être utilisées, le cas
1988     échéant. Les mots-clés reconnus sont :
1989     </p>
1990
1991     <dl>
1992      <dt><strong>INode</strong></dt>
1993      <dd>Le numéro d'i-node du fichier sera inclus dans le processus de
1994      génération</dd>
1995      <dt><strong>MTime</strong></dt>
1996      <dd>La date et l'heure auxquelles le fichier a été modifié la
1997      dernière fois seront incluses</dd>
1998      <dt><strong>Size</strong></dt>
1999      <dd>La taille du fichier en octets sera incluse</dd>
2000      <dt><strong>All</strong></dt>
2001      <dd>Tous les champs disponibles seront utilisés. Cette définition
2002      est équivalente à : 
2003      <highlight language="config">FileETag INode MTime Size</highlight></dd>
2004      <dt><strong>None</strong></dt>
2005      <dd>Si le document se compose d'un fichier, aucun champ
2006      <code>ETag</code> ne sera inclus dans la réponse</dd>
2007     </dl>
2008
2009     <p>Les mots-clés <code>INode</code>, <code>MTime</code>, et
2010     <code>Size</code> peuvent être préfixés par <code>+</code> ou
2011     <code>-</code>, ce qui permet de modifier les valeurs par défaut
2012     héritées d'un niveau de configuration plus général. Tout mot-clé
2013     apparaissant sans aucun préfixe annule entièrement et immédiatement
2014     les configurations héritées.</p>
2015
2016     <p>Si la configuration d'un répertoire contient
2017     <code>FileETag&nbsp;INode&nbsp;MTime&nbsp;Size</code>, et si un de
2018     ses sous-répertoires contient <code>FileETag&nbsp;-INode</code>, la
2019     configuration de ce sous-répertoire (qui sera propagée vers tout
2020     sous-répertoire qui ne la supplante pas), sera équivalente à
2021     <code>FileETag&nbsp;MTime&nbsp;Size</code>.</p>
2022     <note type="warning"><title>Avertissement</title>
2023     Ne modifiez pas les valeurs par défaut pour les répertoires ou
2024     localisations où WebDAV est activé et qui utilisent
2025     <module>mod_dav_fs</module> comme fournisseur de stockage.
2026     <module>mod_dav_fs</module> utilise
2027     <code>MTime&nbsp;Size</code> comme format fixe pour les
2028     comparaisons de champs <code>ETag</code> dans les requêtes
2029     conditionnelles. Ces requêtes conditionnelles échoueront si le
2030     format <code>ETag</code> est modifié via la directive
2031     <directive>FileETag</directive>.
2032     </note>
2033     <note><title>Inclusions côté serveur</title>
2034     Aucun champ ETag n'est généré pour les réponses interprétées par
2035     <module>mod_include</module>, car l'entité de la réponse peut
2036     changer sans modification de l'INode, du MTime, ou de la taille du
2037     fichier statique contenant les directives SSI.
2038     </note>
2039
2040
2041 </usage>
2042 </directivesynopsis>
2043
2044 <directivesynopsis type="section">
2045 <name>Files</name>
2046 <description>Contient des directives qui s'appliquent aux fichiers
2047 précisés</description>
2048 <syntax>&lt;Files <var>nom fichier</var>&gt; ... &lt;/Files&gt;</syntax>
2049 <contextlist><context>server config</context><context>virtual
2050 host</context>
2051 <context>directory</context><context>.htaccess</context>
2052 </contextlist>
2053 <override>All</override>
2054
2055 <usage>
2056     <p>La directive <directive type="section">Files</directive> limite
2057     la portée des directives qu'elle contient aux fichiers précisés.
2058     Elle est comparable aux directives <directive module="core"
2059     type="section">Directory</directive> et <directive module="core"
2060     type="section">Location</directive>. Elle doit se terminer par une
2061     balise <code>&lt;/Files&gt;</code>. Les directives contenues dans
2062     cette section s'appliqueront à tout objet dont le nom de base (la
2063     dernière partie du nom de fichier) correspond au fichier spécifié.
2064     Les sections <directive type="section">Files</directive> sont
2065     traitées selon l'ordre dans lequel elles apparaissent dans le
2066     fichier de configuration, après les sections <directive module="core"
2067     type="section">Directory</directive> et la lecture des fichiers
2068     <code>.htaccess</code>, mais avant les sections <directive
2069     type="section" module="core">Location</directive>. Notez que les
2070     sections <directive type="section">Files</directive> peuvent être
2071     imbriquées dans les sections <directive type="section"
2072     module="core">Directory</directive> afin de restreindre la portion
2073     du système de fichiers à laquelle ces dernières vont
2074     s'appliquer.</p>
2075
2076     <p>L'argument <var>filename</var> peut contenir un nom de fichier
2077     ou une chaîne de caractères avec caractères génériques, où
2078     <code>?</code> remplace un caractère, et <code>*</code> toute chaîne
2079     de caractères.</p>
2080     <highlight language="config">
2081 &lt;Files "cat.html"&gt;
2082     # Insérer ici des directives qui s'appliquent au fichier cat.html
2083 &lt;/Files&gt;
2084
2085 &lt;Files "?at.*"&gt;
2086     # Les directives insérées ici s'appliqueront aux fichiers
2087     # cat.html, bat.html, hat.php, et ainsi de suite.
2088 &lt;/Files&gt;
2089 </highlight>
2090     
2091     <p>On peut aussi utiliser les <glossary
2092     ref="regex">Expressions rationnelles</glossary> en ajoutant la
2093     caractère <code>~</code>. Par exemple :</p>
2094
2095     <highlight language="config">
2096 &lt;Files ~ "\.(gif|jpe?g|png)$"&gt;
2097     #...
2098 &lt;/Files&gt;
2099 </highlight>
2100
2101     <p>correspondrait à la plupart des formats graphiques de l'Internet.
2102     Il est cependant préférable d'utiliser la directive <directive
2103     module="core" type="section">FilesMatch</directive>.</p>
2104
2105     <p>Notez qu'à la différence des sections <directive type="section"
2106     module="core">Directory</directive> et <directive type="section"
2107     module="core">Location</directive>, les sections <directive
2108     type="section">Files</directive> peuvent être utilisées dans les
2109     fichiers <code>.htaccess</code>. Ceci permet aux utilisateurs de
2110     contrôler l'accès à leurs propres ressources, fichier par
2111     fichier.</p>
2112
2113 </usage>
2114 <seealso><a href="../sections.html">Comment fonctionnent les sections
2115 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
2116 explication de la manière dont ces différentes sections se combinent
2117 entre elles à la réception d'une requête</seealso>
2118 </directivesynopsis>
2119
2120 <directivesynopsis type="section">
2121 <name>FilesMatch</name>
2122 <description>Contient des directives qui s'appliquent à des fichiers
2123 spécifiés sous la forme d'expressions rationnelles</description>
2124 <syntax>&lt;FilesMatch <var>expression rationnelle</var>&gt; ...
2125 &lt;/FilesMatch&gt;</syntax>
2126 <contextlist><context>server config</context><context>virtual
2127 host</context>
2128 <context>directory</context><context>.htaccess</context>
2129 </contextlist>
2130 <override>All</override>
2131
2132 <usage>
2133     <p>La section <directive type="section">FilesMatch</directive>
2134     limite la portée des directives qu'elle contient aux fichiers
2135     spécifiés, tout comme le ferait une section <directive module="core"
2136     type="section">Files</directive>. Mais elle accepte aussi les
2137     <glossary ref="regex">expressions rationnelles</glossary>. Par
2138     exemple :</p>
2139
2140     <highlight language="config">
2141 &lt;FilesMatch ".+\.(gif|jpe?g|png)$"&gt;
2142     # ...
2143 &lt;/FilesMatch&gt;
2144     </highlight>
2145
2146     <p>correspondrait à la plupart des formats graphiques de
2147     l'Internet.</p>
2148
2149     <note>Les caractères <code>.+</code> au début de l'expression
2150     rationnelle permettent de s'assurer que les fichiers de nom
2151     <code>.png</code>, ou <code>.gif</code>, par exemple, ne seront pas
2152     pris en compte.</note>
2153
2154     <p>A partir de la version 2.4.8, les groupes nommés et les
2155     références arrières sont extraits et enregistrés dans
2156     l'environnement avec leur nom en majuscules et préfixé
2157     par "MATCH_". Ceci permet
2158     de référencer des URLs dans des <a href="../expr.html">expressions</a>
2159     ou au sein de modules comme <module>mod_rewrite</module>. Pour
2160     éviter toute confusion, les références arrières numérotées (non
2161     nommées) sont ignorées. Vous devez utiliser à la place des groupes
2162     nommés.</p>
2163
2164 <highlight language="config">
2165 &lt;FilesMatch "^(?&lt;sitename&gt;[^/]+)"&gt;
2166     require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
2167 &lt;/FilesMatch&gt;
2168 </highlight>    
2169 </usage>
2170
2171 <seealso><a href="../sections.html">Comment fonctionnent les sections
2172 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
2173 explication de la manière dont ces différentes sections se combinent
2174 entre elles à la réception d'une requête</seealso>
2175 </directivesynopsis>
2176
2177 <directivesynopsis>
2178 <name>ForceType</name>
2179 <description>Force le type de médium spécifié dans le champ d'en-tête
2180 HTTP Content-Type pour les fichiers correspondants</description>
2181 <syntax>ForceType <var>type médium</var>|None</syntax>
2182 <contextlist><context>directory</context><context>.htaccess</context>
2183 </contextlist>
2184 <override>FileInfo</override>
2185
2186 <usage>
2187     <p>Lorsqu'elle est placée dans un fichier <code>.htaccess</code> ou
2188     une section <directive type="section"
2189     module="core">Directory</directive>, <directive type="section"
2190     module="core">Location</directive>, ou <directive type="section"
2191     module="core">Files</directive>, cette directive force
2192     l'identification du type MIME des fichiers spécifiés à la valeur de
2193     l'argument <var>type médium</var>. Par exemple, si vous possédez un
2194     répertoire ne contenant que des fichiers GIF, et si vous ne voulez
2195     pas leur ajouter l'extension <code>.gif</code>, vous pouvez utiliser
2196     :</p>
2197
2198     <highlight language="config">ForceType image/gif</highlight>
2199
2200     <p>Notez que cette directive l'emporte sur d'autres associations de
2201     type de médium indirectes définies dans mime.types ou via la
2202     directive <directive module="mod_mime">AddType</directive>.</p>
2203
2204     <p>Vous pouvez aussi annuler toute définition plus générale de
2205     <directive>ForceType</directive> en affectant la valeur
2206     <code>None</code> à l'argument <var>type médium</var> :</p>
2207
2208     <highlight language="config">
2209 # force le type MIME de tous les fichiers à image/gif:
2210 &lt;Location "/images"&gt;
2211   ForceType image/gif
2212 &lt;/Location&gt;
2213
2214 # mais utilise les méthodes classiques d'attribution du type MIME
2215 # dans le sous-répertoire suivant :
2216 &lt;Location "/images/mixed"&gt;
2217   ForceType None
2218 &lt;/Location&gt;
2219     </highlight>
2220     
2221     <p>A la base, cette directive écrase le type de contenu généré pour
2222     les fichiers statiques servis à partir du sytème de fichiers. Pour
2223     les ressources autres que les fichiers statiques pour lesquels le
2224     générateur de réponse spécifie en général un type de contenu, cette
2225     directive est ignorée.</p>
2226
2227     <note><title>Note</title>
2228     <p>Si aucun gestionnaire n'est explicitement défini pour une
2229     requête, le type de contenu spécifié sera aussi utilisé comme nom de
2230     gestionnaire.</p>
2231    
2232     <p>Lorsque des directives explicites comme <directive
2233     module="core">SetHandler</directive> ou
2234     <directive>module="mod_mime">AddHandler</directive> ne s'appliquent
2235     pas à la requête courante, le nom du gestionnaire interne
2236     normalement défini par ces directives correspondra alors au type de
2237     contenu spécifié par cette directive.
2238     </p>
2239     <p>Il s'agit d'un comportement historique que certains modules
2240     tiers, comme mod_php, peuvent interpréter comme un type de contenu
2241     artificiel ne servant qu'à indiquer le module qui doit prendre en
2242     compte la requête considérée. 
2243     </p>
2244
2245     <p>Dans la mesure du possible, il est conseillé d'éviter les
2246     configurations qui comportent de tels types artificiels. En outre,
2247     les configurations qui restreignent l'accès aux directives
2248     <directive module="core" >SetHandler</directive> ou <directive
2249     module="mod_mime">AddHandler</directive> doivent aussi restreindre
2250     l'accès à cette directive.</p>
2251     </note>
2252
2253 </usage>
2254 </directivesynopsis>
2255
2256 <directivesynopsis>
2257 <name>GprofDir</name>
2258 <description>Répertoire dans lequel écrire les données de profiling
2259 gmon.out.</description>
2260 <syntax>GprofDir <var>/tmp/gprof/</var>|<var>/tmp/gprof/</var>%</syntax>
2261 <contextlist><context>server config</context><context>virtual host</context>
2262 </contextlist>
2263
2264 <usage>
2265     <p>Lorsque le serveur a été compilé avec le support du profiling
2266     gprof, la directive <directive>GprofDir</directive> permet de
2267     spécifier dans quel répertoire les fichiers <code>gmon.out</code>
2268     doivent être écrits lorsque le processus s'arrête. Si l'argument se
2269     termine par un caractère pourcentage ('%'), des sous-répertoires
2270     sont créés pour chaque identifiant de processus.</p>
2271
2272     <p>Cette directive ne fonctionne actuellement qu'avec le MPM
2273     <module>prefork</module>.</p>
2274 </usage>
2275 </directivesynopsis>
2276
2277 <directivesynopsis>
2278 <name>HostnameLookups</name>
2279 <description>Active la recherche DNS sur les adresses IP des
2280 clients</description>
2281 <syntax>HostnameLookups On|Off|Double</syntax>
2282 <default>HostnameLookups Off</default>
2283 <contextlist><context>server config</context><context>virtual
2284 host</context>
2285 <context>directory</context></contextlist>
2286
2287 <usage>
2288     <p>Cette directive active la recherche DNS afin de pouvoir
2289     journaliser les nom d'hôtes (et les passer aux programmes CGI et aux
2290     inclusions SSI via la variable <code>REMOTE_HOST</code>). La valeur
2291     <code>Double</code> déclenche une double recherche DNS inverse. En
2292     d'autres termes, une fois la recherche inverse effectuée, on lance
2293     une recherche directe sur le résultat de cette dernière. Au moins
2294     une des adresses IP fournies par la recherche directe doit
2295     correspondre à l'adresse originale (ce que l'on nomme
2296     <code>PARANOID</code> dans la terminologie "tcpwrappers").</p>
2297
2298     <p>Quelle que soit la configuration, lorsqu'on utilise
2299     <module>mod_authz_host</module> pour contrôler l'accès en fonction
2300     du nom d'hôte, une double recherche DNS inverse est effectuée,
2301     sécurité oblige. Notez cependant que le résultat de cette double
2302     recherche n'est en général pas accessible, à moins que vous n'ayez
2303     spécifié <code>HostnameLookups Double</code>. Par exemple, si vous
2304     n'avez spécifié que <code>HostnameLookups On</code>, et si une
2305     requête concerne un objet protégé par des restrictions en fonction
2306     du nom d'hôte, quel que soit le résultat de la double recherche
2307     inverse, les programmes CGI ne recevront que le résultat de la
2308     recherche inverse simple dans la variable
2309     <code>REMOTE_HOST</code>.</p>
2310
2311     <p>La valeur par défaut est <code>Off</code> afin de préserver le
2312     traffic réseau des sites pour lesquels la recherche inverse n'est
2313     pas vraiment nécessaire. Cette valeur par défaut est aussi bénéfique
2314     pour les utilisateurs finaux car il n'ont ainsi pas à subir de temps
2315     d'attente supplémentaires dus aux recherches DNS. Les sites
2316     fortement chargés devraient laisser cette directive à
2317     <code>Off</code>, car les recherches DNS peuvent prendre des temps
2318     très longs. Vous pouvez éventuellement utiliser hors ligne
2319     l'utilitaire <program>logresolve</program>, compilé par défaut dans
2320     le sous-répertoire <code>bin</code> de votre répertoire
2321     d'installation, afin de déterminer les noms d'hôtes associés aux
2322     adresses IP journalisées.</p>
2323
2324     <p>Enfin, si vous avez des <a
2325     href="mod_authz_host.html#reqhost">directives Require à base de
2326     nom</a>, une recherche de nom d'hôte sera effectuée quelle que soit
2327     la définition de la directive <code>HostnameLookups</code>.</p>
2328 </usage>
2329 </directivesynopsis>
2330
2331 <directivesynopsis type="section">
2332 <name>If</name>
2333 <description>Contient des directives qui ne s'appliquent que si une
2334 condition est satisfaite au cours du traitement d'une
2335 requête</description>
2336 <syntax>&lt;If <var>expression</var>&gt; ... &lt;/If&gt;</syntax>
2337 <contextlist><context>server config</context><context>virtual
2338 host</context>
2339 <context>directory</context><context>.htaccess</context>
2340 </contextlist>
2341 <override>All</override>
2342
2343 <usage>
2344     <p>La directive <directive type="section">If</directive> évalue une
2345     expression à la volée, et applique les directives qu'elle contient
2346     si et seulement si l'expression renvoie la valeur "vrai". Par
2347     exemple :</p>
2348
2349     <highlight language="config">&lt;If "-z req('Host')"&gt;</highlight>
2350
2351     <p>serait satisfaite pour les requêtes HTTP/1.0 sans en-tête
2352     <var>Host:</var>. Les expressions peuvent contenir différents
2353     opérateurs de type shell pour la comparaison de chaînes
2354     (<code>==</code>, <code>!=</code>, <code>&lt;</code>, ...), la
2355     comparaison d'entiers (<code>-eq</code>, <code>-ne</code>, ...), ou
2356     à usages divers (<code>-n</code>, <code>-z</code>, <code>-f</code>,
2357     ...). Les expressions rationnelles sont aussi supportées,</p>
2358
2359     <highlight language="config">&lt;If "%{QUERY_STRING} =~ /(delete|commit)=.*?elem/"&gt;</highlight>
2360
2361     <p>ainsi que les comparaison de modèles de type shell et de
2362     nombreuses autres opérations. Ces opérations peuvent être effectuées
2363     sur les en-têtes de requêtes (<code>req</code>), les variables
2364     d'environnement (<code>env</code>), et un grand nombre d'autres
2365     propriétés. La documentation complète est disponible dans <a
2366     href="../expr.html">Les expressions dans le serveur HTTP Apache</a>.</p>
2367
2368     <p>Cette section de configuration ne peut contenir que des
2369     directives qui supportent le <a
2370     href="directive-dict.html#Context">contexte de répertoire</a>.</p>
2371
2372     <note type="warning">
2373     Certaines variables comme <code>CONTENT_TYPE</code> ainsi que
2374     d'autres en-têtes de réponse ne seront pas disponibles dans ce bloc,
2375     car elle sont définies après l'évaluation des conditions &lt;If&gt;.
2376     </note>
2377
2378 </usage>
2379
2380 <seealso><a href="../expr.html">Les expressions dans le serveur HTTP
2381 Apache</a>, pour une référence complète et d'autres exemples.</seealso>
2382 <seealso><directive type="section" module="core">ElseIf</directive></seealso>
2383 <seealso><directive type="section" module="core">Else</directive></seealso>
2384 <seealso><a href="../sections.html">Comment fonctionnent les sections
2385 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
2386 explication de la manière dont ces différentes sections se combinent
2387 entre elles à la réception d'une requête. Les
2388 directives <directive type="section">If</directive>, <directive
2389 type="section">ElseIf</directive>, et <directive
2390 type="section">Else</directive> s'appliquent en dernier.</seealso>
2391 </directivesynopsis>
2392
2393 <directivesynopsis type="section">
2394 <name>IfDefine</name>
2395 <description>Contient des directives qui ne s'appliqueront que si un
2396 test retourne "vrai" au démarrage du serveur</description>
2397 <syntax>&lt;IfDefine [!]<var>paramètre</var>&gt; ...
2398     &lt;/IfDefine&gt;</syntax>
2399 <contextlist><context>server config</context><context>virtual
2400 host</context>
2401 <context>directory</context><context>.htaccess</context>
2402 </contextlist>
2403 <override>All</override>
2404
2405 <usage>
2406     <p>La section <code>&lt;IfDefine
2407     <var>test</var>&gt;...&lt;/IfDefine&gt;</code> permet de
2408     conférer un caractère conditionnel à un ensemble de directives. Les
2409     directives situées à l'intérieur d'une section <directive
2410     type="section">IfDefine</directive> ne s'appliquent que si
2411     <var>test</var> est vrai. Si <var>test</var> est faux, tout ce qui
2412     se trouve entre les balises de début et de fin est ignoré.</p>
2413
2414     <p><var>test</var> peut se présenter sous deux formes :</p>
2415
2416     <ul>
2417       <li><var>nom paramètre</var></li>
2418
2419       <li><code>!</code><var>nom paramètre</var></li>
2420     </ul>
2421
2422     <p>Dans le premier cas, les directives situées entre les balises de
2423     début et de fin ne s'appliqueront que si le paramètre nommé <var>nom
2424     paramètre</var> est défini. Le second format inverse le test, et
2425     dans ce cas, les directives ne s'appliqueront que si <var>nom
2426     paramètre</var> n'est <strong>pas</strong> défini.</p>
2427
2428     <p>L'argument <var>nom paramètre</var> est une définition qui peut
2429     être effectuée par la ligne de commande
2430     <program>httpd</program> via le paramètre
2431     <code>-D<var>paramètre</var></code> au démarrage du serveur, ou via la
2432     directive <directive module="core">Define</directive>.</p>
2433
2434     <p>Les sections <directive type="section">IfDefine</directive>
2435     peuvent être imbriquées, ce qui permet d'implémenter un test
2436     multi-paramètres simple. Exemple :</p>
2437
2438     <example>httpd -DReverseProxy -DUseCache -DMemCache ...</example>
2439     <highlight language="config">
2440 &lt;IfDefine ReverseProxy&gt;
2441   LoadModule proxy_module   modules/mod_proxy.so
2442   LoadModule proxy_http_module   modules/mod_proxy_http.so
2443   &lt;IfDefine UseCache&gt;
2444     LoadModule cache_module   modules/mod_cache.so
2445     &lt;IfDefine MemCache&gt;
2446       LoadModule mem_cache_module   modules/mod_mem_cache.so
2447     &lt;/IfDefine&gt;
2448     &lt;IfDefine !MemCache&gt;
2449       LoadModule cache_disk_module   modules/mod_cache_disk.so
2450     &lt;/IfDefine&gt;
2451   &lt;/IfDefine&gt;
2452 &lt;/IfDefine&gt;
2453     </highlight>
2454 </usage>
2455 </directivesynopsis>
2456
2457 <directivesynopsis type="section">
2458 <name>IfModule</name>
2459 <description>Contient des directives qui ne s'appliquent qu'en fonction
2460 de la présence ou de l'absence d'un module spécifique</description>
2461 <syntax>&lt;IfModule [!]<var>fichier module</var>|<var>identificateur
2462 module</var>&gt; ... &lt;/IfModule&gt;</syntax>
2463 <contextlist><context>server config</context><context>virtual
2464 host</context>
2465 <context>directory</context><context>.htaccess</context>
2466 </contextlist>
2467 <override>All</override>
2468
2469 <usage>
2470     <p>La section <code>&lt;IfModule
2471     <var>test</var>&gt;...&lt;/IfModule&gt;</code> permet de conférer à
2472     des directives un caractère conditionnel basé sur la présence d'un
2473     module spécifique. Les directives situées dans une section
2474     <directive type="section">IfModule</directive> ne s'appliquent que
2475     si <var>test</var> est vrai. Si <var>test</var> est faux, tout ce
2476     qui se trouve entre les balises de début et de fin est ignoré.</p>
2477
2478     <p><var>test</var> peut se présenter sous deux formes :</p>
2479
2480     <ul>
2481       <li><var>module</var></li>
2482
2483       <li>!<var>module</var></li>
2484     </ul>
2485
2486     <p>Dans le premier cas, les directives situées entre les balises de
2487     début et de fin ne s'appliquent que si le module <var>module</var>
2488     est présent -- soit compilé avec le binaire Apache httpd, soit chargé
2489     dynamiquement via la directive <directive module="mod_so"
2490     >LoadModule</directive>. Le second format inverse le test, et dans
2491     ce cas, les directives ne s'appliquent que si <var>module</var>
2492     n'est <strong>pas</strong> présent.</p>
2493
2494     <p>L'argument <var>module</var> peut contenir soit l'identificateur
2495     du module, soit le nom du fichier source du module. Par exemple,
2496     <code>rewrite_module</code> est un identificateur et
2497     <code>mod_rewrite.c</code> le nom du fichier source
2498     correspondant. Si un module comporte plusieurs fichiers sources,
2499     utilisez le nom du fichier qui contient la chaîne de caractères
2500     <code>STANDARD20_MODULE_STUFF</code>.</p>
2501
2502     <p>Les sections <directive type="section">IfModule</directive>
2503     peuvent être imbriquées, ce qui permet d'implémenter des tests
2504     multi-modules simples.</p>
2505
2506     <note>Cette section ne doit être utilisée que si votre fichier de
2507     configuration ne fonctionne qu'en fonction de la présence ou de
2508     l'absence d'un module spécifique. D'une manière générale, il n'est
2509     pas nécessaire de placer les directives à l'intérieur de sections
2510     <directive type="section">IfModule</directive>.</note>
2511 </usage>
2512 </directivesynopsis>
2513
2514 <directivesynopsis>
2515 <name>Include</name>
2516 <description>Inclut d'autres fichiers de configuration dans un des
2517 fichiers de configuration du serveur</description>
2518 <syntax>Include <var>chemin-fichier</var>|<var>chemin-répertoire</var>|<var>wildcard</var></syntax>
2519 <contextlist><context>server config</context><context>virtual
2520 host</context>
2521 <context>directory</context>
2522 </contextlist>
2523 <compatibility>Utilisation des caractères
2524 génériques dans la partie chemin depuis la version 2.3.6</compatibility>
2525
2526 <usage>
2527     <p>Cette directive permet l'inclusion d'autres fichiers de
2528     configuration dans un des fichiers de configuration du serveur.</p>
2529
2530     <p>On peut utiliser des caractères génériques de style Shell
2531     (<code>fnmatch()</code>) aussi bien dans la partie nom de fichier du
2532     chemin que dans la partie répertoires pour inclure plusieurs
2533     fichiers en une
2534     seule fois, selon leur ordre alphabétique. De plus, si la directive
2535     <directive>Include</directive> pointe vers un répertoire, Apache
2536     httpd inclura tous les fichiers de ce répertoire et de tous ces
2537     sous-répertoires. L'inclusion de répertoires entiers est cependant
2538     déconseillée, car il est fréquent d'oublier des fichiers
2539     temporaires dans un répertoire, ce qui causerait une erreur
2540     <program>httpd</program> en cas d'inclusion. Pour inclure des
2541     fichiers qui correspondent à un certain modèle, comme *.conf par
2542     exemple, nous vous recommandons d'utiliser plutôt la syntaxe avec
2543     caractères génériques comme ci-dessous.</p>
2544
2545     <p>La directive <directive module="core">Include</directive>
2546     <strong>échouera avec un code d'erreur</strong> si une expression
2547    contenant des caractères génériques ne correspond à aucun fichier.
2548    Pour ignorer les expressions contenant des caractères génériques ne
2549    correspondant à aucun fichier, utilisez la directive <directive
2550    module="core">IncludeOptional</directive>.</p>
2551
2552     <p>Le chemin fichier spécifié peut être soit un chemin absolu, soit
2553     un chemin relatif au répertoire défini par la directive <directive
2554     module="core">ServerRoot</directive>.</p>
2555
2556     <p>Exemples :</p>
2557
2558     <highlight language="config">
2559 Include /usr/local/apache2/conf/ssl.conf
2560 Include /usr/local/apache2/conf/vhosts/*.conf
2561     </highlight>
2562
2563     <p>ou encore, avec des chemins relatifs au répertoire défini par la
2564     directive <directive module="core">ServerRoot</directive> :</p>
2565
2566     <highlight language="config">
2567 Include conf/ssl.conf
2568 Include conf/vhosts/*.conf
2569     </highlight>
2570
2571     <p>On peut aussi insérer des caractères génériques dans la partie
2572     répertoires du chemin. Dans l'exemple suivant, la directive
2573     échouera si aucun sous-répertoire de conf/vhosts ne contient au
2574     moins un fichier *.conf :</p>
2575   
2576     <highlight language="config">Include conf/vhosts/*/*.conf</highlight>
2577
2578     <p>Par contre, dans l'exemple suivant, la directive sera simplement
2579     ignorée si aucun sous-répertoire de conf/vhosts ne contient au
2580     moins un fichier *.conf :</p>
2581
2582     <highlight language="config">IncludeOptional conf/vhosts/*/*.conf</highlight>
2583   
2584 </usage>    
2585
2586 <seealso><directive module="core">IncludeOptional</directive></seealso>
2587 <seealso><program>apachectl</program></seealso>
2588 </directivesynopsis>
2589
2590 <directivesynopsis>
2591 <name>IncludeOptional</name>
2592 <description>Inclusion de fichiers dans le fichier de configuration</description>
2593 <syntax>IncludeOptional
2594 <var>chemin-fichier</var>|<var>chemin-répertoire</var>|<var>wildcard</var></syntax>
2595 <contextlist><context>server config</context><context>virtual host</context>
2596 <context>directory</context>
2597 </contextlist>
2598 <compatibility>Disponible à partir de la version 2.3.6 du serveur HTTP
2599 Apache</compatibility>
2600  
2601 <usage>
2602     <p>Cette directive permet d'inclure des fichiers dans les fichiers
2603     de configuration du serveur. Elle fonctionne de manière identique à
2604     la directive <directive module="core">Include</directive>, à
2605     l'exception du fait que si l'expression avec caractères génériques
2606     wilcard ne correspond à aucun fichier ou répertoire, elle sera
2607     ignorée silencieusement au lieu de causer une erreur.</p>    
2608     
2609 </usage>
2610
2611 <seealso><directive module="core">Include</directive></seealso>
2612 <seealso><program>apachectl</program></seealso>
2613 </directivesynopsis>
2614
2615 <directivesynopsis>
2616 <name>KeepAlive</name>
2617 <description>Active les connexions HTTP persistantes</description>
2618 <syntax>KeepAlive On|Off</syntax>
2619 <default>KeepAlive On</default>
2620 <contextlist><context>server config</context><context>virtual
2621 host</context>
2622 </contextlist>
2623
2624 <usage>
2625     <p>L'extension Keep-Alive de HTTP/1.0 et l'implémentation des
2626     connexions persistantes dans HTTP/1.1 ont rendu possibles des
2627     sessions HTTP de longue durée, ce qui permet de transmettre
2628     plusieurs requêtes via la même connexion TCP. Dans certains cas, le
2629     gain en rapidité pour des documents comportant de nombreuses images
2630     peut atteindre 50%. Pour activer les connexions persistantes,
2631     définissez <code>KeepAlive On</code>.</p>
2632
2633     <p>Pour les clients HTTP/1.0, les connexions persistantes ne seront
2634     mises en oeuvre que si elles ont été spécialement demandées par un
2635     client. De plus, une connexion persistante avec un client HTTP/1.0
2636     ne peut être utilisée que si la taille du contenu est connue
2637     d'avance. Ceci implique que les contenus dynamiques comme les
2638     sorties CGI, les pages SSI, et les listings de répertoires générés
2639     par le serveur n'utiliseront en général pas les connexions
2640     persistantes avec les clients HTTP/1.0. Avec les clients HTTP/1.1,
2641     les connexions persistantes sont utilisées par défaut, sauf
2642     instructions contraires. Si le client le demande, le transfert par
2643     tronçons de taille fixe (chunked encoding) sera utilisé afin de
2644     transmettre un contenu de longueur inconnue via une connexion
2645     persistante.</p>
2646
2647     <p>Lorsqu'un client utilise une connexion persistante, elle comptera
2648     pour une seule requête pour la directive <directive
2649     module="mpm_common">MaxConnectionsPerChild</directive>, quel
2650     que soit le nombre de requêtes transmises via cette connexion.</p>
2651 </usage>
2652
2653 <seealso><directive module="core">MaxKeepAliveRequests</directive></seealso>
2654 </directivesynopsis>
2655
2656 <directivesynopsis>
2657 <name>KeepAliveTimeout</name>
2658 <description>Durée pendant laquelle le serveur va attendre une requête
2659 avant de fermer une connexion persistante</description>
2660 <syntax>KeepAliveTimeout <var>nombre</var>[ms]</syntax>
2661 <default>KeepAliveTimeout 5</default>
2662 <contextlist><context>server config</context><context>virtual
2663 host</context>
2664 </contextlist>
2665
2666 <usage>
2667     <p>Le nombre de secondes pendant lesquelles Apache httpd va attendre une
2668     requête avant de fermer la connexion. Le délai peut être défini en
2669     millisecondes en suffixant sa valeur par ms. La valeur du délai
2670     spécifiée par la directive <directive
2671     module="core">Timeout</directive> s'applique dès qu'une requête a
2672     été reçue.</p>
2673
2674     <p>Donner une valeur trop élévée à
2675     <directive>KeepAliveTimeout</directive> peut induire des problèmes
2676     de performances sur les serveurs fortement chargés. Plus le délai
2677     est élévé, plus nombreux seront les processus serveur en attente de
2678     requêtes de la part de clients inactifs.</p>
2679
2680     <p>Si la directive <directive>KeepAliveTimeout</directive>
2681     <strong>n'est pas</strong> définie pour un des serveurs virtuels
2682     à base de nom, c'est le serveur virtuel dont la paire adresse
2683     IP/port correspond le mieux qui sera utilisée.</p>
2684 </usage>
2685 </directivesynopsis>
2686
2687 <directivesynopsis type="section">
2688 <name>Limit</name>
2689 <description>Limite les contrôles d'accès que la section contient à
2690 certaines méthodes HTTP</description>
2691 <syntax>&lt;Limit <var>méthode</var> [<var>méthode</var>] ... &gt; ...
2692     &lt;/Limit&gt;</syntax>
2693 <contextlist><context>directory</context><context>.htaccess</context>
2694 </contextlist>
2695 <override>AuthConfig, Limit</override>
2696
2697 <usage>
2698     <p>Les contrôles d'accès s'appliquent normalement à
2699     <strong>toutes</strong> les méthodes d'accès, et c'est en général le
2700     comportement souhaité. <strong>Dans le cas général, les directives
2701     de contrôle d'accès n'ont pas à être placées dans une section
2702     <directive type="section">Limit</directive>.</strong></p>
2703
2704     <p>La directive <directive type="section">Limit</directive> a pour
2705     but de limiter les effets des contrôles d'accès aux méthodes HTTP
2706     spécifiées. Pour toutes les autres méthodes, les restrictions
2707     d'accès contenues dans la section <directive
2708     type="section">Limit</directive> <strong>n'auront aucun
2709     effet</strong>. L'exemple suivant n'applique les contrôles d'accès
2710     qu'aux méthodes <code>POST</code>, <code>PUT</code>, et
2711     <code>DELETE</code>, en laissant les autres méthodes sans protection
2712     :</p>
2713
2714     <highlight language="config">
2715 &lt;Limit POST PUT DELETE&gt;
2716   Require valid-user
2717 &lt;/Limit&gt;
2718     </highlight>
2719
2720     <p>La liste des noms de méthodes peut contenir une ou plusieurs
2721     valeurs parmi les suivantes : <code>GET</code>, <code>POST</code>,
2722     <code>PUT</code>, <code>DELETE</code>, <code>CONNECT</code>,
2723     <code>OPTIONS</code>, <code>PATCH</code>, <code>PROPFIND</code>,
2724     <code>PROPPATCH</code>, <code>MKCOL</code>, <code>COPY</code>,
2725     <code>MOVE</code>, <code>LOCK</code>, et <code>UNLOCK</code>.
2726     <strong>Le nom de méthode est sensible à la casse.</strong> Si la
2727     valeur <code>GET</code> est présente, les requêtes <code>HEAD</code>
2728     seront aussi concernées. La méthode <code>TRACE</code> ne peut pas
2729     être limitée (voir la directive <directive
2730     module="core">TraceEnable</directive>).</p>
2731
2732     <note type="warning">Une section <directive
2733     type="section">LimitExcept</directive> doit toujours être préférée à
2734     une section <directive type="section">Limit</directive> pour la
2735     restriction d'accès, car une section <directive type="section"
2736     module="core">LimitExcept</directive> fournit une protection contre
2737     les méthodes arbitraires.</note>
2738
2739     <p>Les directives <directive type="section">Limit</directive> et
2740     <directive type="section" module="core">LimitExcept</directive>
2741     peuvent être imbriquées. Dans ce cas, pour chaque niveau des
2742     directives <directive type="section">Limit</directive> ou  <directive
2743     type="section" module="core">LimitExcept</directive>, ces dernières
2744     doivent restreindre l'accès pour les méthodes auxquelles les
2745     contrôles d'accès s'appliquent.</p>
2746
2747     <note type="warning">Lorsqu'on utilise les directives <directive
2748     type="section">Limit</directive> ou <directive
2749     type="section">LimitExcept</directive> avec la directive <directive
2750     module="mod_authz_core">Require</directive>, la première directive
2751     <directive module="mod_authz_core">Require</directive> dont la
2752     condition est satisfaite autorise la requête, sans tenir compte de
2753     la présence d'autres directives <directive
2754     module="mod_authz_core">Require</directive>.</note>
2755
2756     <p>Par exemple, avec la configuration suivante, tous les
2757     utilisateurs seront autorisés à effectuer des requêtes
2758     <code>POST</code>, et la directive <code>Require group
2759     editors</code> sera ignorée dans tous les cas :</p>
2760
2761     <highlight language="config">
2762 &lt;LimitExcept GET&gt;
2763   Require valid-user
2764 &lt;/LimitExcept&gt;
2765 &lt;Limit POST&gt;
2766   Require group editors
2767 &lt;/Limit&gt;
2768     </highlight>
2769 </usage>
2770 </directivesynopsis>
2771
2772 <directivesynopsis type="section">
2773 <name>LimitExcept</name>
2774 <description>Applique les contrôles d'accès à toutes les méthodes HTTP,
2775 sauf celles qui sont spécifiées</description>
2776 <syntax>&lt;LimitExcept <var>méthode</var> [<var>méthode</var>] ... &gt; ...
2777     &lt;/LimitExcept&gt;</syntax>
2778 <contextlist><context>directory</context><context>.htaccess</context>
2779 </contextlist>
2780 <override>AuthConfig, Limit</override>
2781
2782 <usage>
2783     <p><directive type="section">LimitExcept</directive> et
2784     <code>&lt;/LimitExcept&gt;</code> permettent de regrouper des
2785     directives de contrôle d'accès qui s'appliqueront à toutes les
2786     méthodes d'accès HTTP qui ne font <strong>pas</strong> partie de la
2787     liste des arguments ; en d'autres termes, elles ont un comportement
2788     opposé à celui de la section <directive type="section"
2789     module="core">Limit</directive>, et on peut les utiliser pour
2790     contrôler aussi bien les méthodes standards que les méthodes non
2791     standards ou non reconnues. Voir la documentation de la section
2792     <directive module="core" type="section">Limit</directive> pour plus
2793     de détails.</p>
2794
2795     <p>Par exemple :</p>
2796
2797     <highlight language="config">
2798 &lt;LimitExcept POST GET&gt;
2799   Require valid-user
2800 &lt;/LimitExcept&gt;
2801     </highlight>
2802
2803 </usage>
2804 </directivesynopsis>
2805
2806 <directivesynopsis>
2807 <name>LimitInternalRecursion</name>
2808 <description>Détermine le nombre maximal de redirections internes et de
2809 sous-requêtes imbriquées</description>
2810 <syntax>LimitInternalRecursion <var>nombre</var> [<var>nombre</var>]</syntax>
2811 <default>LimitInternalRecursion 10</default>
2812 <contextlist><context>server config</context><context>virtual
2813 host</context>
2814 </contextlist>
2815
2816 <usage>
2817     <p>Une redirection interne survient, par exemple, quand on utilise
2818     la directive <directive module="mod_actions">Action</directive> qui
2819     redirige en interne la requête d'origine vers un script CGI. Une
2820     sous-requête est le mécanisme qu'utilise Apache httpd pour déterminer ce
2821     qui se passerait pour un URI s'il faisait l'objet d'une requête. Par
2822     exemple, <module>mod_dir</module> utilise les sous-requêtes pour
2823     rechercher les fichiers listés dans la directive <directive
2824     module="mod_dir">DirectoryIndex</directive>.</p>
2825
2826     <p>La directive <directive>LimitInternalRecursion</directive> permet
2827     d'éviter un crash du serveur dû à un bouclage infini de redirections
2828     internes ou de sous-requêtes. De tels bouclages sont dus en général
2829     à des erreurs de configuration.</p>
2830
2831     <p>La directive accepte, comme arguments, deux limites qui sont
2832     évaluées à chaque requête. Le premier <var>nombre</var> est le
2833     nombre maximum de redirections internes qui peuvent se succéder. Le
2834     second <var>nombre</var> détermine la profondeur d'imbrication
2835     maximum des sous-requêtes. Si vous ne spécifiez qu'un seul
2836     <var>nombre</var>, il sera affecté aux deux limites.</p>
2837
2838     <highlight language="config">LimitInternalRecursion 5</highlight>
2839 </usage>
2840 </directivesynopsis>
2841
2842 <directivesynopsis>
2843 <name>LimitRequestBody</name>
2844 <description>limite la taille maximale du corps de la requête HTTP
2845 envoyée par le client</description>
2846 <syntax>LimitRequestBody <var>octets</var></syntax>
2847 <default>LimitRequestBody 0</default>
2848 <contextlist><context>server config</context><context>virtual
2849 host</context>
2850 <context>directory</context><context>.htaccess</context>
2851 </contextlist>
2852 <override>All</override>
2853
2854 <usage>
2855     <p>Cette directive spécifie la taille maximale autorisée pour le
2856     corps d'une requête ; la valeur de l'argument <var>octets</var> va
2857     de 0 (pour une taille illimitée), à 2147483647 (2Go). Voir la note
2858     ci-dessous pour la limite d'applicabilité aux requêtes mandatées.</p>
2859
2860     <p>La directive <directive>LimitRequestBody</directive> permet de
2861     définir une limite pour la taille maximale autorisée du corps d'une
2862     requête HTTP en tenant compte du contexte dans lequel la directive
2863     a été placée (c'est à dire au niveau du serveur, d'un répertoire,
2864     d'un fichier ou d'une localisation). Si la requête du client dépasse
2865     cette limite, le serveur répondra par un message d'erreur et ne
2866     traitera pas la requête. La taille du corps d'une requête normale va
2867     varier de manière importante en fonction de la nature de la
2868     ressource et des méthodes autorisées pour cette dernière. Les
2869     scripts CGI utilisent souvent le corps du message pour extraire les
2870     informations d'un formulaire. Les implémentations de la méthode
2871     <code>PUT</code> nécessitent une valeur au moins aussi élevée que la
2872     taille maximale des représentations que le serveur désire accepter
2873     pour cette ressource.</p>
2874
2875     <p>L'administrateur du serveur peut utiliser cette directive pour
2876     contrôler plus efficacement les comportements anormaux des requêtes
2877     des clients, ce qui lui permettra de prévenir certaines formes
2878     d'attaques par déni de service.</p>
2879
2880     <p>Si par exemple, vous autorisez le chargement de fichiers vers une
2881     localisation particulière, et souhaitez limiter la taille des
2882     fichiers chargés à 100Ko, vous pouvez utiliser la directive suivante
2883     :</p>
2884
2885     <highlight language="config">LimitRequestBody 102400</highlight>
2886
2887     <note><p>Pour une description détaillée de la manière dont cette
2888     directive est interprétée par les requêtes mandatées, voir la
2889     documentation du module <module>mod_proxy</module>.</p>
2890     </note>
2891
2892 </usage>
2893 </directivesynopsis>
2894
2895 <directivesynopsis>
2896 <name>LimitRequestFields</name>
2897 <description>Limite le nombre de champs d'en-tête autorisés dans une
2898 requête HTTP</description>
2899 <syntax>LimitRequestFields <var>nombre</var></syntax>
2900 <default>LimitRequestFields 100</default>
2901 <contextlist><context>server config</context><context>virtual host</context></contextlist>
2902
2903 <usage>
2904     <p><var>nombre</var> est un entier de 0 (nombre de champs illimité)
2905     à 32767. La valeur par défaut est définie à la compilation par la
2906     constante <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> (100 selon la
2907     distribution).</p>
2908
2909     <p>La directive <directive>LimitRequestFields</directive> permet à
2910     l'administrateur du serveur de modifier le nombre maximum de champs
2911     d'en-tête autorisés dans une requête HTTP. Pour un serveur, cette
2912     valeur doit être supérieure au nombre de champs qu'une requête
2913     client normale peut contenir. Le nombre de champs d'en-tête d'une
2914     requête qu'un client utilise dépasse rarement 20, mais ce nombre
2915     peut varier selon les implémentations des clients, et souvent en
2916     fonction des extensions que les utilisateurs configurent dans leurs
2917     navigateurs pour supporter la négociation de contenu détaillée. Les
2918     extensions HTTP optionnelles utilisent souvent les
2919     champs d'en-tête des requêtes.</p>
2920
2921     <p>L'administrateur du serveur peut utiliser cette directive pour
2922     contrôler plus efficacement les comportements anormaux des requêtes
2923     des clients, ce qui lui permettra de prévenir certaines formes
2924     d'attaques par déni de service. La valeur spécifiée doit être
2925     augmentée si les clients standards reçoivent une erreur du serveur
2926     indiquant que la requête comportait un nombre d'en-têtes trop
2927     important.</p>
2928
2929     <p>Par exemple :</p>
2930
2931     <highlight language="config">LimitRequestFields 50</highlight>
2932
2933     <note type="warning"><title>Avertissement</title>
2934      <p>Dans le cas des serveurs virtuels à base de noms, la valeur de
2935      cette directive est extraite du serveur virtuel par défaut (le
2936      premier de la liste) pour la paire adresse IP/port.</p>
2937     </note>
2938
2939 </usage>
2940 </directivesynopsis>
2941
2942 <directivesynopsis>
2943 <name>LimitRequestFieldSize</name>
2944 <description>Dédinit la taille maximale autorisée d'un en-tête de
2945 requête HTTP</description>
2946 <syntax>LimitRequestFieldSize <var>octets</var></syntax>
2947 <default>LimitRequestFieldSize 8190</default>
2948 <contextlist><context>server config</context><context>virtual host</context></contextlist>
2949
2950 <usage>
2951     <p>Cette directive permet de définir le nombre maximum
2952     d'<var>octets</var> autorisés dans un en-tête de requête HTTP.</p>
2953
2954     <p>La directive <directive>LimitRequestFieldSize</directive> permet
2955     à l'administrateur du serveur de définir la taille
2956     maximale autorisée d'un en-tête de requête HTTP. Pour un serveur,
2957     cette valeur doit être suffisamment grande pour contenir tout
2958     en-tête d'une requête client normale. La taille d'un champ d'en-tête
2959     de requête normal va varier selon les implémentations des clients,
2960     et en fonction des extensions que les utilisateurs
2961     configurent dans leurs navigateurs pour supporter la négociation de
2962     contenu détaillée. Les en-têtes d'authentification SPNEGO peuvent
2963     atteindre une taille de 12392 octets.</p>
2964
2965     <p>>L'administrateur du serveur peut utiliser cette directive pour
2966     contrôler plus efficacement les comportements anormaux des requêtes
2967     des clients, ce qui lui permettra de prévenir certaines formes
2968     d'attaques par déni de service.</p>
2969
2970     <p>Par exemple ::</p>
2971
2972     <highlight language="config">LimitRequestFieldSize 4094</highlight>
2973
2974     <note>Dans des conditions normales, la valeur par défaut de cette
2975     directive ne doit pas être modifiée.</note>
2976
2977     <note type="warning"><title>Avertissement</title>
2978      <p>Dans le cas des serveurs virtuels à base de noms, la valeur de
2979      cette directive est extraite du serveur virtuel par défaut (le
2980      premier de la liste) pour lequel la paire adresse IP/port
2981      correspond le mieux.</p>
2982     </note>
2983 </usage>
2984 </directivesynopsis>
2985
2986 <directivesynopsis>
2987 <name>LimitRequestLine</name>
2988 <description>Définit la taille maximale d'une ligne de requête
2989 HTTP</description>
2990 <syntax>LimitRequestLine <var>octets</var></syntax>
2991 <default>LimitRequestLine 8190</default>
2992 <contextlist><context>server config</context><context>virtual host</context></contextlist>
2993
2994 <usage>
2995     <p>Cette directive permet de définir la taille maximale autorisée
2996     pour une ligne de requête HTTP en <var>octets</var>.</p>
2997
2998     <p>La directive <directive>LimitRequestLine</directive> permet à
2999     l'administrateur du serveur de définir la taille
3000     maximale autorisée d'une ligne de requête HTTP client. Comme une
3001     requête comporte une méthode HTTP, un URI, et une version de
3002     protocole, la directive <directive>LimitRequestLine</directive>
3003     impose une restriction sur la longueur maximale autorisée pour un
3004     URI dans une requête au niveau du serveur. Pour un serveur, cette
3005     valeur doit être suffisamment grande pour référencer les noms de
3006     toutes ses ressources, y compris toutes informations pouvant être
3007     ajoutées dans la partie requête d'une méthode <code>GET</code>.</p>
3008
3009     <p>L'administrateur du serveur peut utiliser cette directive pour
3010     contrôler plus efficacement les comportements anormaux des requêtes
3011     des clients, ce qui lui permettra de prévenir certaines formes
3012     d'attaques par déni de service.</p>
3013
3014     <p>Par exemple :</p>
3015
3016     <highlight language="config">LimitRequestLine 4094</highlight>
3017
3018     <note>Dans des conditions normales, cette directive doit conserver
3019     sa valeur par défaut.</note>
3020
3021     <note type="warning"><title>Avertissement</title>
3022      <p>Dans le cas des serveurs virtuels à base de noms, la valeur de
3023      cette directive est extraite du serveur virtuel par défaut (le
3024      premier de la liste) pour lequel la paire adresse IP/port
3025      correspond le mieux.</p>
3026     </note>
3027
3028 </usage>
3029 </directivesynopsis>
3030
3031 <directivesynopsis>
3032 <name>LimitXMLRequestBody</name>
3033 <description>Définit la taille maximale du corps d'une requête au format
3034 XML</description>
3035 <syntax>LimitXMLRequestBody <var>octets</var></syntax>
3036 <default>LimitXMLRequestBody 1000000</default>
3037 <contextlist><context>server config</context><context>virtual
3038 host</context>
3039 <context>directory</context><context>.htaccess</context></contextlist>
3040 <override>All</override>
3041
3042 <usage>
3043     <p>Taille maximale (en octets) du corps d'une requête au format XML.
3044     Une valeur de <code>0</code> signifie qu'aucune limite n'est
3045     imposée.</p>
3046
3047     <p>Exemple :</p>
3048
3049     <highlight language="config">LimitXMLRequestBody 0</highlight>
3050
3051 </usage>
3052 </directivesynopsis>
3053
3054 <directivesynopsis type="section">
3055 <name>Location</name>
3056 <description>N'applique les directives contenues qu'aux URLs
3057 spécifiées</description>
3058 <syntax>&lt;Location
3059     <var>chemin URL</var>|<var>URL</var>&gt; ... &lt;/Location&gt;</syntax>
3060 <contextlist><context>server config</context><context>virtual
3061 host</context>
3062 </contextlist>
3063
3064 <usage>
3065     <p>La directive <directive type="section">Location</directive>
3066     limite la portée des directives contenues aux URLs définies par
3067     l'argument URL. Elle est similaire à la directive <directive
3068     type="section" module="core">Directory</directive>, et marque le
3069     début d'une section qui se termine par une directive
3070     <code>&lt;/Location&gt;</code>. Les sections <directive
3071     type="section">Location</directive> sont traitées selon l'ordre dans
3072     lequel elles apparaissent dans le fichier de configuration, mais
3073     après les sections <directive
3074     type="section" module="core">Directory</directive> et la lecture des
3075     fichiers <code>.htaccess</code>, et après les sections <directive
3076     type="section" module="core">Files</directive>.</p>
3077
3078     <p>Les sections <directive type="section">Location</directive>
3079     agissent complètement en dehors du système de fichiers. Ceci a de
3080     nombreuses conséquences. Parmi les plus importantes, on ne doit pas
3081     utiliser les sections <directive type="section">Location</directive>
3082     pour contrôler l'accès aux répertoires du système de fichiers. Comme
3083     plusieurs URLs peuvent correspondre au même répertoire du système de
3084     fichiers, un tel contrôle d'accès pourrait être contourné.</p>
3085
3086     <p>Les directives que contient cette section seront appliquées aux
3087     requêtes si la partie chemin de l'URL satisfait à l'un au moins de
3088     ces critères :
3089     </p>
3090     <ul>
3091       <li>Le chemin spécifié correspond exactement à la partie chemin de
3092       l'URL.
3093       </li>
3094       <li>Le chemin spécifié, qui se termine par un slash, est un
3095       préfixe de la partie chemin de l'URL (traité comme une racine du
3096       contexte).
3097       </li>
3098       <li>Le chemin spécifié, si on lui ajoute un slash de fin, est un
3099       préfixe de la partie chemin de l'URL (aussi traité comme une racine du
3100       contexte).
3101       </li>
3102     </ul>
3103     <p>
3104     Dans l'exemple ci-dessous, où aucun slash de fin n'est utilisé, les
3105     directives contenues dans la section s'appliqueront à /private1,
3106     /private1/ et /private1/file.txt, mais pas à /private1other. 
3107     </p>
3108     <highlight language="config">
3109 &lt;Location "/private1"&gt;
3110     #  ...
3111 &lt;/Location&gt;
3112     </highlight>
3113     <p>
3114     De même, dans l'exemple ci-dessous, où l'on utilise un slash de fin, les
3115     directives contenues dans la section s'appliqueront à /private2/ et
3116     à /private2/file.txt, mais pas à /private2other.
3117     </p>
3118     <highlight language="config">
3119 &lt;Location "/private2<em>/</em>"&gt;
3120     # ...
3121 &lt;/Location&gt;
3122     </highlight>
3123     
3124     <note><title>Quand utiliser la section <directive
3125     type="section">Location</directive></title>
3126
3127     <p>Vous pouvez utiliser une section <directive
3128     type="section">Location</directive> pour appliquer des directives à
3129     des contenus situés en dehors du système de fichiers. Pour les
3130     contenus situés à l'intérieur du système de fichiers, utilisez
3131     plutôt les sections <directive
3132     type="section" module="core">Directory</directive> et <directive
3133     type="section" module="core">Files</directive>. <code>&lt;Location
3134     "/"&gt;</code> constitue une exception et permet d'appliquer aisément
3135     une configuration à l'ensemble du serveur.</p>
3136     </note>
3137
3138     <p>Pour toutes les requêtes originales (non mandatées), l'argument
3139     URL est un chemin d'URL de la forme
3140     <code>/chemin/</code>. <em>Aucun protocole, nom d'hôte, port, ou chaîne
3141     de requête ne doivent apparaître.</em> Pour les requêtes mandatées, l'URL
3142     spécifiée doit être de la forme
3143     <code>protocole://nom_serveur/chemin</code>, et vous devez inclure
3144     le préfixe.</p>
3145
3146     <p>L'URL peut contenir des caractères génériques. Dans une chaîne
3147     avec caractères génériques, <code>?</code> correspond à un caractère
3148     quelconque, et <code>*</code> à toute chaîne de caractères. Les
3149     caractères génériques ne peuvent pas remplacer un / dans le chemin
3150     URL.</p>
3151
3152     <p>On peut aussi utiliser les <glossary ref="regex">Expressions
3153     rationnelles</glossary>, moyennant l'addition d'un caractère
3154     <code>~</code>. Par exemple :</p>
3155
3156     <highlight language="config">
3157 &lt;Location ~ "/(extra|special)/data"&gt;
3158     #...
3159 &lt;/Location&gt;
3160 </highlight>
3161
3162     <p>concernerait les URLs contenant les sous-chaîne
3163     <code>/extra/data</code> ou <code>/special/data</code>. La directive
3164     <directive type="section" module="core">LocationMatch</directive>
3165     présente un comportement identique à la version avec expressions
3166     rationnelles de la directive <directive
3167     type="section">Location</directive>, et son utilisation est
3168     préférable à l'utilisation de cette dernière pour la simple raison
3169     qu'il est difficile de distinguer <code>~</code> de <code>-</code>
3170     dans la plupart des fontes.</p>
3171
3172     <p>La directive <directive type="section">Location</directive>
3173     s'utilise principalement avec la directive <directive
3174     module="core">SetHandler</directive>. Par exemple, pour activer les
3175     requêtes d'état, mais ne les autoriser que depuis des navigateurs
3176     appartenant au domaine <code>example.com</code>, vous pouvez
3177     utiliser :</p>
3178
3179     <highlight language="config">
3180 &lt;Location "/status"&gt;
3181   SetHandler server-status
3182   Require host example.com
3183 &lt;/Location&gt;
3184     </highlight>
3185
3186     <note><title>Note à propos du slash (/)</title>
3187       <p>La signification du caractère slash dépend de l'endroit où il
3188       se trouve dans l'URL. Les utilisateurs peuvent être habitués à
3189       son comportement dans le système de fichiers où plusieurs slashes
3190       successifs sont souvent réduits à un slash unique (en d'autres
3191       termes, <code>/home///foo</code> est identique à
3192       <code>/home/foo</code>). Dans l'espace de nommage des URLs, ce
3193       n'est cependant pas toujours le cas. Pour la directive <directive
3194       type="section" module="core">LocationMatch</directive> et la
3195       version avec expressions rationnelles de la directive <directive
3196       type="section">Location</directive>, vous devez spécifier
3197       explicitement les slashes multiples si telle est votre
3198       intention.</p>
3199
3200       <p>Par exemple, <code>&lt;LocationMatch "^/abc"&gt;</code> va
3201       correspondre à l'URL <code>/abc</code> mais pas à l'URL <code>
3202       //abc</code>. La directive <directive type="section"
3203       >Location</directive> sans expression rationnelle se comporte de
3204       la même manière lorsqu'elle est utilisée pour des requêtes
3205       mandatées. Par contre, lorsque la directive <directive
3206       type="section">Location</directive> sans expression rationnelle
3207       est utilisée pour des requêtes non mandatées, elle fera
3208       correspondre implicitement les slashes multiples à des slashes
3209       uniques. Par exemple, si vous spécifiez <code>&lt;Location
3210       "/abc/def"&gt;</code>, une requête de la forme
3211       <code>/abc//def</code> correspondra.</p>
3212     </note>
3213 </usage>
3214 <seealso><a href="../sections.html">Comment fonctionnent les sections
3215 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
3216 explication de la manière dont ces différentes sections se combinent
3217 entre elles à la réception d'une requête.</seealso>
3218 </directivesynopsis>
3219
3220 <directivesynopsis type="section">
3221 <name>LocationMatch</name>
3222 <description>N'applique les directives contenues qu'aux URLs
3223 correspondant à une expression rationnelle</description>
3224 <syntax>&lt;LocationMatch
3225     <var>regex</var>&gt; ... &lt;/LocationMatch&gt;</syntax>
3226 <contextlist><context>server config</context><context>virtual
3227 host</context>
3228 </contextlist>
3229
3230 <usage>
3231     <p>La directive <directive type="section">LocationMatch</directive>
3232     limite la portée des directives contenues à l'URL spécifiée, de
3233     manière identique à la directive <directive module="core"
3234     type="section">Location</directive>. Mais son argument permettant de
3235     spécifier les URLs concernées est une <glossary
3236     ref="regex">expression rationnelle</glossary> au lieu d'une simple
3237     chaîne de caractères. Par exemple :</p>
3238
3239     <highlight language="config">
3240 &lt;LocationMatch "/(extra|special)/data"&gt;
3241     # ...
3242 &lt;/LocationMatch&gt;
3243 </highlight>
3244
3245     <p>correspondrait à toute URL contenant les sous-chaînes
3246     <code>/extra/data</code> ou <code>/special/data</code>.</p>
3247
3248     <note><p>Si vous recherchez une URL <strong>commençant par</strong>
3249     plutôt que seulement contenant <code>/extra/data</code>, préfixez
3250     l'expression rationnelle avec un <code>^</code>.</p>
3251
3252     <highlight language="config">
3253     &lt;LocationMatch "^/(extra|special)/data"&gt;
3254     </highlight>
3255     </note>
3256
3257     <p>A partir de la version 2.4.8, les groupes nommés et les
3258     références arrières sont extraits et enregistrés dans
3259     l'environnement avec leur nom en majuscules et préfixé
3260     par "MATCH_". Ceci permet
3261     de référencer des URLs dans des <a href="../expr.html">expressions</a>
3262     ou au sein de modules comme <module>mod_rewrite</module>. Pour
3263     éviter toute confusion, les références arrières numérotées (non
3264     nommées) sont ignorées. Vous devez utiliser à la place des groupes
3265     nommés.</p>
3266
3267 <highlight language="config">
3268 &lt;LocationMatch "^/combined/(?&lt;sitename&gt;[^/]+)"&gt;
3269     require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
3270 &lt;/LocationMatch&gt;
3271 </highlight>    
3272 </usage>
3273 <seealso><a href="../sections.html">Comment fonctionnent les sections
3274 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
3275 explication de la manière dont ces différentes sections se combinent
3276 entre elles à la réception d'une requête.</seealso>
3277 </directivesynopsis>
3278
3279 <directivesynopsis>
3280 <name>LogLevel</name>
3281 <description>Contrôle la verbosité du journal des erreurs</description>
3282 <syntax>LogLevel [<var>module</var>:]<var>niveau</var>
3283     [<var>module</var>:<var>niveau</var>] ...
3284 </syntax>
3285 <default>LogLevel warn</default>
3286 <contextlist><context>server config</context><context>virtual
3287 host</context><context>directory</context>
3288 </contextlist>
3289 <compatibility>La configuration du niveau de journalisation par module
3290 et par répertoire est disponible depuis la version 2.3.6 du serveur HTTP
3291 Apache</compatibility>
3292 <usage>
3293     <p>La directive <directive>LogLevel</directive> permet d'ajuster la
3294     verbosité des messages enregistrés dans les journaux d'erreur (voir
3295     la directive <directive module="core">ErrorLog</directive>
3296     directive). Les <var>niveau</var>x disponibles sont présentés
3297     ci-après, par ordre de criticité décroissante :</p>
3298
3299     <table border="1">
3300     <columnspec><column width=".2"/><column width=".3"/><column width=".5"/>
3301     </columnspec>
3302       <tr>
3303         <th><strong>Niveau</strong> </th>
3304
3305         <th><strong>Description</strong> </th>
3306
3307         <th><strong>Exemple</strong> </th>
3308       </tr>
3309
3310       <tr>
3311         <td><code>emerg</code> </td>
3312
3313         <td>Urgences - le système est inutilisable.</td>
3314
3315         <td>"Child cannot open lock file. Exiting"</td>
3316       </tr>
3317
3318       <tr>
3319         <td><code>alert</code> </td>
3320
3321         <td>Des mesures doivent être prises immédiatement.</td>
3322
3323         <td>"getpwuid: couldn't determine user name from uid"</td>
3324       </tr>
3325
3326       <tr>
3327         <td><code>crit</code> </td>
3328
3329         <td>Conditions critiques.</td>
3330
3331         <td>"socket: Failed to get a socket, exiting child"</td>
3332       </tr>
3333
3334       <tr>
3335         <td><code>error</code> </td>
3336
3337         <td>Erreurs.</td>
3338
3339         <td>"Premature end of script headers"</td>
3340       </tr>
3341
3342       <tr>
3343         <td><code>warn</code> </td>
3344
3345         <td>Avertissements.</td>
3346
3347         <td>"child process 1234 did not exit, sending another
3348         SIGHUP"</td>
3349       </tr>
3350
3351       <tr>
3352         <td><code>notice</code> </td>
3353
3354         <td>Evènement important mais normal.</td>
3355
3356         <td>"httpd: caught SIGBUS, attempting to dump core in
3357         ..."</td>
3358       </tr>
3359
3360       <tr>
3361         <td><code>info</code> </td>
3362
3363         <td>Informations.</td>
3364
3365         <td>"Server seems busy, (you may need to increase
3366         StartServers, or Min/MaxSpareServers)..."</td>
3367       </tr>
3368
3369       <tr>
3370         <td><code>debug</code> </td>
3371
3372         <td>Messages de débogage.</td>
3373
3374         <td>"Opening config file ..."</td>
3375       </tr>
3376       <tr>
3377         <td><code>trace1</code> </td>
3378
3379         <td>Messages de traces</td>
3380
3381         <td>"proxy: FTP: control connection complete"</td>
3382       </tr>
3383       <tr>
3384         <td><code>trace2</code> </td>
3385
3386         <td>Messages de traces</td>
3387
3388         <td>"proxy: CONNECT: sending the CONNECT request to the remote proxy"</td>
3389       </tr>
3390       <tr>
3391         <td><code>trace3</code> </td>
3392
3393         <td>Messages de traces</td>
3394
3395         <td>"openssl: Handshake: start"</td>
3396       </tr>
3397       <tr>
3398         <td><code>trace4</code> </td>
3399
3400         <td>Messages de traces</td>
3401
3402         <td>"read from buffered SSL brigade, mode 0, 17 bytes"</td>
3403       </tr>
3404       <tr>
3405         <td><code>trace5</code> </td>
3406
3407         <td>Messages de traces</td>
3408
3409         <td>"map lookup FAILED: map=rewritemap key=keyname"</td>
3410       </tr>
3411       <tr>
3412         <td><code>trace6</code> </td>
3413
3414         <td>Messages de traces</td>
3415
3416         <td>"cache lookup FAILED, forcing new map lookup"</td>
3417       </tr>
3418       <tr>
3419         <td><code>trace7</code> </td>
3420
3421         <td>Messages de traces, enregistrement d'une grande quantité de
3422         données</td>
3423
3424         <td>"| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"</td>
3425       </tr>
3426       <tr>
3427         <td><code>trace8</code> </td>
3428
3429         <td>Messages de traces, enregistrement d'une grande quantité de
3430         données</td>
3431
3432         <td>"| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"</td>
3433       </tr>
3434     </table>
3435
3436     <p>Lorsqu'un niveau particulier est spécifié, les messages de tous
3437     les autres niveaux de criticité supérieure seront aussi enregistrés.
3438     <em>Par exemple</em>, si <code>LogLevel info</code> est spécifié,
3439     les messages de niveaux <code>notice</code> et <code>warn</code>
3440     seront aussi émis.</p>
3441
3442     <p>Il est recommandé d'utiliser un niveau <code>crit</code> ou
3443     inférieur.</p>
3444
3445     <p>Par exemple :</p>
3446
3447     <highlight language="config">LogLevel notice</highlight>
3448
3449     <note><title>Note</title>
3450       <p>Si la journalisation s'effectue directement dans un fichier,
3451       les messages de niveau <code>notice</code> ne peuvent pas être
3452       supprimés et sont donc toujours journalisés. Cependant, ceci ne
3453       s'applique pas lorsque la journalisation s'effectue vers
3454       <code>syslog</code>.</p>
3455     </note>
3456     
3457     <p>Spécifier un niveau sans nom de module va attribuer ce niveau à
3458     tous les modules. Spécifier un niveau avec nom de module va
3459     attribuer ce niveau à ce module seulement. Il est possible de
3460     spécifier un module par le nom de son fichier source ou par son
3461     identificateur, avec ou sans le suffixe <code>_module</code>. Les
3462     trois spécifications suivantes sont donc équivalentes :</p>
3463
3464     <highlight language="config">
3465 LogLevel info ssl:warn
3466 LogLevel info mod_ssl.c:warn
3467 LogLevel info ssl_module:warn
3468     </highlight>
3469
3470     <p>Il est aussi possible d'attribuer un niveau de journalisation par
3471     répertoire :</p>
3472
3473     <highlight language="config">
3474 LogLevel info
3475 &lt;Directory "/usr/local/apache/htdocs/app"&gt;
3476   LogLevel debug
3477 &lt;/Directory&gt;
3478     </highlight>
3479
3480     <note>
3481         La configuration du niveau de journalisation par répertoire
3482         n'affecte que les messages journalisés après l'interprétation de
3483         la requête et qui sont associés à cette dernière. Les messages
3484         de journalisation associés au serveur ou à la connexion ne sont
3485         pas affectés. Il est cependant possible d'agir sur ces
3486         derniers à l'aide de la directive <directive
3487         module="core">LogLevelOverride</directive>.
3488     </note>
3489 </usage>
3490 <seealso><directive module="core">ErrorLog</directive></seealso>
3491 <seealso><directive module="core">ErrorLogFormat</directive></seealso>
3492 <seealso><directive module="core">LogLevelOverride</directive></seealso>
3493 <seealso><a href="../logs.html">Journaux du serveur HTTP Apache</a></seealso>
3494 </directivesynopsis>
3495
3496 <directivesynopsis>
3497 <name>LogLevelOverride</name>
3498 <description>Surcharge la verbosité du journal des erreurs pour certains
3499 clients</description>
3500 <syntax>LogLevel <var>ipaddress</var>[/<var>prefixlen</var>]
3501     [<var>module</var>:]<var>level</var> [<var>module</var>:<var>level</var>] ...
3502 </syntax>
3503 <default>non définie</default>
3504 <contextlist><context>server config</context><context>virtual host</context>
3505 </contextlist>
3506 <compatibility>Disponible à partir de la version 2.5.0 du serveur HTTP
3507 Apache.</compatibility>
3508
3509 <usage>
3510     <p>La directive <directive>LogLevelOverride</directive> permet
3511     d'affiner la définition de la directive <directive
3512     module="core">LogLevel</directive> pour les requêtes en provenance
3513     de certaines adresses IP. Il est ainsi possible d'activer une
3514     journalisation détaillée seulement pour certains clients à des fins
3515     de test. Les adresses IP sont vérifiées à un stade très précoce du
3516     processus de connexion. Ainsi, la directive
3517     <directive>LogLevelOverride</directive> permet de modifier le niveau
3518     de journalisation pour des processus comme la négociation SSL qui
3519     intervient avant l'évaluation d'une éventuelle directive <directive
3520     module="core">LogLevel</directive> au sein d'un conteneur <directive
3521     type="section" module="core">If</directive>.</p>
3522
3523     <p>La directive <directive>LogLevelOverride</directive> accepte soit
3524     une adresse IP simple, soit une spécification de sous-réseau CIDR de
3525     la forme adresse-IP/masque. Pour la syntaxe de la spécification du
3526     niveau de journalisation, voir la directive <directive
3527     module="core">LogLevel</directive> directive.</p>
3528
3529     <p>Pour les requêtes concernées par une directive
3530     <directive>LogLevelOverride</directive>, les spécifications de
3531     niveau répertoire de la directive <directive
3532     module="core">LogLevel</directive> sont ignorées.</p>
3533
3534     <p>Exemples:</p>
3535
3536     <highlight language="config">
3537         LogLevelOverride 192.0.2.0/24 ssl:trace6
3538         LogLevelOverride 192.0.2.7 ssl:trace8
3539     </highlight>
3540
3541     <note>
3542         La directive <directive>LogLevelOverride</directive> n'affecte que les
3543         messages associés à la requête ou à la connexion. Les messages
3544         associés au serveur ne sont pas affectés.
3545     </note>
3546
3547 </usage>
3548 <seealso><directive module="core">LogLevel</directive></seealso>
3549 </directivesynopsis>
3550
3551 <directivesynopsis>
3552 <name>MaxKeepAliveRequests</name>
3553 <description>Nombre de requêtes permises pour une connexion
3554 persistante</description>
3555 <syntax>MaxKeepAliveRequests <var>nombre</var></syntax>
3556 <default>MaxKeepAliveRequests 100</default>
3557 <contextlist><context>server config</context><context>virtual
3558 host</context>
3559 </contextlist>
3560
3561 <usage>
3562     <p>La directive <directive>MaxKeepAliveRequests</directive> permet
3563     de limiter le nombre de requêtes autorisées par connexion lorsque
3564     <directive module="core" >KeepAlive</directive> est à "on". Si sa
3565     valeur est <code>0</code>, le nombre de requêtes autorisées est
3566     illimité. Il est recommandé de définir une valeur assez haute pour
3567     des performances du serveur maximales.</p>
3568
3569     <p>Par exemple :</p>
3570
3571     <highlight language="config">MaxKeepAliveRequests 500</highlight>
3572 </usage>
3573 </directivesynopsis>
3574
3575 <directivesynopsis>
3576 <name>MaxRanges</name>
3577 <description>Nombre de segments de données autorisé avant le renvoi de
3578 l'intégralité de la ressource</description>
3579 <syntax>MaxRanges default | unlimited | none | <var>nombre de segments</var></syntax>
3580 <default>MaxRanges 200</default>
3581 <contextlist><context>server config</context><context>virtual host</context>
3582 <context>directory</context>
3583 </contextlist>
3584 <compatibility>Disponible depuis la version 2.3.15 du serveur HTTP
3585 Apache</compatibility>
3586
3587 <usage>
3588     <p>La directive <directive>MaxRanges</directive> permet de limiter
3589     le nombre de segments de données que le serveur va renvoyer au
3590     client. Si un nombre de segments plus important est demandé, la
3591     ressource sera renvoyée dans son intégralité.</p>
3592
3593     <dl>  
3594       <dt><strong>default</strong></dt>
3595       <dd>Limite le nombre de segments de données à 200 (valeur par
3596       défaut définie à la compilation).</dd>
3597    
3598       <dt><strong>none</strong></dt>
3599       <dd>Les en-têtes Range sont ignorés.</dd>
3600           
3601       <dt><strong>unlimited</strong></dt>
3602       <dd>Le nombre de segments de données est illimité.</dd>
3603
3604       <dt><var>nombre de segments</var></dt>
3605       <dd>Un nombre positif représentera la nombre de segments de
3606       données maximal que le serveur renverra au client.</dd>
3607     </dl>
3608 </usage>
3609 </directivesynopsis>
3610
3611 <directivesynopsis>
3612 <name>MaxRangeOverlaps</name>
3613     <description>Nombre de chevauchements de segments de données autorisé
3614     (par exemple <code>100-200,150-300</code>) avant le renvoi de la
3615     ressource complète</description>
3616     <syntax>MaxRangeOverlaps default | unlimited | none | <var>nombre de
3617     chevauchements</var></syntax>
3618     <default>MaxRangeOverlaps 20</default>
3619     <contextlist><context>server config</context><context>virtual host</context>
3620         <context>directory</context>
3621     </contextlist>
3622     <compatibility>Disponible depuis la version 2.3.15 du serveur HTTP
3623     Apache</compatibility>
3624
3625     <usage>
3626         <p>La directive <directive>MaxRangeOverlaps</directive> permet
3627         de limiter le nombre de chevauchements de segments de données HTTP
3628         autorisé par le serveur. Si le nombre de
3629         chevauchements de segments demandé est supérieur au nombre maximal
3630         autorisé, la ressource sera renvoyée dans son intégralité.</p>
3631
3632         <dl>
3633             <dt><strong>default</strong></dt>
3634             <dd>Limite le nombre de chevauchements de segments à la valeur
3635             par défaut 20 définie à la compilation.</dd>
3636
3637             <dt><strong>none</strong></dt>
3638             <dd>Aucun chevauchement de segment n'est autorisé.</dd>
3639
3640             <dt><strong>unlimited</strong></dt>
3641             <dd>Le nombre de chevauchements de segments est illimité.</dd>
3642
3643             <dt><var>number-of-ranges</var></dt>
3644             <dd>Un nombre positif représente le nombre maximal de
3645             chevauchements de segments autorisé par le serveur.</dd>
3646         </dl>
3647     </usage>
3648 </directivesynopsis>
3649
3650 <directivesynopsis>
3651     <name>MaxRangeReversals</name>
3652     <description>Nombre d'inversions d'ordre autorisé dans la spécification des
3653     segments de données (par exemple <code>100-200,50-70</code>) avant le renvoi de la
3654     ressource complète</description>
3655     <syntax>MaxRangeReversals default | unlimited | none | <var>nombre
3656     d'inversions</var></syntax>
3657     <default>MaxRangeReversals 20</default>
3658     <contextlist><context>server config</context><context>virtual host</context>
3659         <context>directory</context>
3660     </contextlist>
3661     <compatibility>Disponible depuis la version 2.3.15 du serveur HTTP
3662     Apache</compatibility>
3663
3664     <usage>
3665         <p>La directive <directive>MaxRangeReversals</directive> permet
3666         de limiter le nombre d'inversions d'ordre dans la spécification
3667         des segments de données HTTP
3668         autorisé par le serveur. Si le nombre
3669         d'inversions demandé est supérieur au nombre maximal
3670         autorisé, la ressource sera renvoyée dans son intégralité.</p>
3671
3672         <dl>
3673             <dt><strong>default</strong></dt>
3674             <dd>Limite le nombre d'inversions à la valeur
3675             par défaut 20 définie à la compilation.</dd>
3676
3677             <dt><strong>none</strong></dt>
3678             <dd>Aucune inversion n'est autorisée.</dd>
3679
3680             <dt><strong>unlimited</strong></dt>
3681             <dd>Le nombre d'inversions est illimité.</dd>
3682
3683             <dt><var>number-of-ranges</var></dt>
3684             <dd>Un nombre positif représente le nombre maximal
3685             d'inversions autorisé par le serveur.</dd>
3686         </dl>
3687     </usage>
3688 </directivesynopsis>
3689
3690 <directivesynopsis>
3691 <name>Mutex</name>
3692 <description>Définit les mécanismes de mutex et le repertoire du fichier
3693 verrou pour tous les mutex ou seulement les mutex spécifiés</description>
3694 <syntax>Mutex <var>mécanisme</var> [default|<var>nom-mutex</var>] ... [OmitPID]</syntax>
3695 <default>Mutex default</default>
3696 <contextlist><context>server config</context></contextlist>
3697 <compatibility>Disponible depuis la version 2.3.4 du serveur HTTP Apache</compatibility>
3698
3699 <usage>
3700     <p>La directive <directive>Mutex</directive> permet de définir le
3701     mécanisme de mutex, et éventuellement le répertoire du fichier
3702     verrou que les modules et httpd utilisent pour sérialiser l'accès aux
3703     ressources. Spécifiez <code>default</code> comme second argument
3704     pour modifier la configuration de tous les mutex ; spécifiez un nom
3705     de mutex (voir la table ci-dessous) comme premier argument pour
3706     ne modifier que la configuration de ce mutex.</p>
3707
3708     <p>La directive <directive>Mutex</directive> est typiquement
3709     utilisée dans les situations exceptionnelles suivantes :</p>
3710
3711     <ul>
3712         <li>choix d'un autre mécanisme de mutex lorsque le mécanisme par
3713         défaut sélectionné par <glossary>APR</glossary> présente un
3714         problème de fonctionnement ou de performances.</li>
3715
3716         <li>choix d'un autre répertoire utilisé par les mutex à base de
3717         fichier lorsque le répertoire par défaut ne supporte pas le
3718         verrouillage</li>
3719     </ul>
3720
3721     <note><title>Modules supportés</title>
3722     <p>Cette directive ne configure que les mutex qui ont été
3723     enregistrés avec le serveur de base via l'API
3724     <code>ap_mutex_register()</code>. Tous les modules fournis avec
3725     httpd supportent la directive <directive>Mutex</directive>, mais il
3726     n'en sera pas forcément de même pour les modules tiers.
3727     Reportez-vous à la documentation du module tiers considéré afin de
3728     déterminer le(s) nom(s) de mutex qui pourront être définis si la
3729     directive est supportée.</p>
3730     </note>
3731
3732     
3733
3734     <p>Les <em>mécanismes</em> de mutex disponibles sont les suivants :</p>
3735     <ul>
3736         <li><code>default | yes</code>
3737         <p>C'est l'implémentation du verrouillage par défaut, telle
3738         qu'elle est définie par <glossary>APR</glossary>. On peut
3739         afficher l'implémentation du verrouillage par défaut via la
3740         commande <program>httpd</program> avec l'option <code>-V</code>.</p></li>
3741
3742         <li><code>none | no</code>
3743         <p>Le mutex est désactivé, et cette valeur n'est permise pour un
3744         mutex que si le module indique qu'il s'agit d'un choix valide.
3745         Consultez la documentation du module pour plus d'informations.</p></li>
3746
3747         <li><code>posixsem</code>
3748         <p>Une variante de mutex basée sur un sémaphore Posix.</p>
3749
3750         <note type="warning"><title>Avertissement</title>
3751         <p>La propriété du sémaphore n'est pas restituée si un thread du
3752         processus gérant le mutex provoque une erreur de segmentation,
3753         ce qui provoquera un blocage du serveur web.</p>
3754         </note>
3755         </li>
3756
3757         <li><code>sysvsem</code>
3758         <p>Une variante de mutex basée sur un sémaphore IPC SystemV.</p>
3759
3760         <note type="warning"><title>Avertissement</title>
3761         <p>Il peut arriver que les sémaphores SysV soient conservés si le
3762         processus se crashe avant que le sémaphore ne soit supprimé.</p>
3763         </note>
3764
3765         <note type="warning"><title>Sécurité</title>
3766         <p>L'API des sémaphores permet les attaques par déni de service
3767         par tout programme CGI s'exécutant sous le même uid que le
3768         serveur web (autrement dit tous les programmes CGI, à moins que
3769         vous n'utilisiez un programme du style <program>suexec</program>
3770         ou <code>cgiwrapper</code>).</p>
3771         </note>
3772         </li>
3773
3774         <li><code>sem</code>
3775         <p>Sélection de la "meilleure" implémentation des sémaphores
3776         disponible ; le choix s'effectue entre les sémaphores posix et
3777         IPC SystemV, dans cet ordre.</p></li>
3778
3779         <li><code>pthread</code>
3780         <p>Une variante de mutex à base de mutex de thread Posix
3781         inter-processus.</p>
3782
3783         <note type="warning"><title>Avertissement</title>
3784         <p>Sur la plupart des systèmes, si un processus enfant se
3785         termine anormalement alors qu'il détenait un mutex qui utilise
3786         cette implémentation, le serveur va se bloquer et cesser de
3787         répondre aux requêtes. Dans ce cas, un redémarrage manuel est
3788         nécessaire pour récupérer le mutex.</p>
3789         <p>Solaris constitue une exception notable, en ceci qu'il fournit
3790         un mécanisme qui permet en général de récupérer le mutex après
3791         l'arrêt anormal d'un processus enfant qui détenait le mutex.</p>
3792         <p>Si votre système implémente la fonction
3793         <code>pthread_mutexattr_setrobust_np()</code>, vous devriez
3794         pouvoir utiliser l'option <code>pthread</code> sans problème.</p>
3795         </note>
3796         </li>
3797
3798         <li><code>fcntl:/chemin/vers/mutex</code>
3799         <p>Une variante de mutex utilisant un fichier verrou physique et
3800         la fonction <code>fcntl()</code>.</p>
3801
3802         <note type="warning"><title>Avertissement</title>
3803         <p>Lorsqu'on utilise plusieurs mutex basés sur ce mécanisme dans
3804         un environnement multi-processus, multi-thread, des erreurs de
3805         blocage (EDEADLK) peuvent être rapportées pour des opérations de
3806         mutex valides si la fonction <code>fcntl()</code> ne gère pas
3807         les threads, comme sous Solaris.</p>
3808         </note>
3809         </li>
3810
3811         <li><code>flock:/chemin/vers/mutex</code>
3812         <p>Méthode similaire à <code>fcntl:/chemin/vers/mutex</code>,
3813         mais c'est la fonction <code>flock()</code> qui est utilisée
3814         pour gérer le verrouillage par fichier.</p></li>
3815
3816         <li><code>file:/chemin/vers/mutex</code>
3817         <p>Sélection de la "meilleure" implémentation de verrouillage
3818         par fichier disponible ; le choix s'effectue entre
3819         <code>fcntl</code> et <code>flock</code>, dans cet ordre.</p></li>
3820     </ul>
3821
3822     <p>La plupart des mécanismes ne sont disponibles que sur les
3823     plate-formes où ces dernières et <glossary>APR</glossary> les
3824     supportent. Les mécanismes qui ne sont pas disponibles sur toutes
3825     les plate-formes sont <em>posixsem</em>,
3826     <em>sysvsem</em>, <em>sem</em>, <em>pthread</em>, <em>fcntl</em>, 
3827     <em>flock</em>, et <em>file</em>.</p>
3828
3829     <p>Avec les mécanismes à base de fichier <em>fcntl</em> et
3830     <em>flock</em>, le chemin, s'il est fourni, est un répertoire dans
3831     lequel le fichier verrou sera créé. Le répertoire par défaut est le
3832     répertoire d'exécution httpd défini par la directive <directive
3833     module="core">DefaultRuntimeDir</directive>. Si le répertoire
3834     spécifié est un chemin relatif, il est relatif au chemin défini par
3835     la directive <directive module="core">DefaultRuntimeDir</directive>.
3836     Utilisez toujours un système
3837     de fichiers local sur disque pour <code>/chemin/vers/mutex</code> et
3838     jamais un répertoire se trouvant dans un système de fichiers NFS ou
3839     AFS. Le nom de base du fichier se composera du type de mutex, d'une
3840     chaîne optionnelle correspondant à l'instance et fournie par le
3841     module ; et, sauf si le mot-clé <code>OmitPID</code> a été spécifié,
3842     l'identificateur du processus parent httpd sera ajouté afin de
3843     rendre le nom du fichier unique, évitant ainsi tout conflit lorsque
3844     plusieurs instances d'httpd partagent le même répertoire de
3845     verrouillage. Par exemple, si le nom de mutex est
3846     <code>mpm-accept</code>, et si le répertoire de verrouillage est
3847     <code>/var/httpd/locks</code>, le nom du fichier verrou pour
3848     l'instance httpd dont le processus parent a pour identifiant 12345
3849     sera <code>/var/httpd/locks/mpm-accept.12345</code>.</p>
3850
3851     <note type="warning"><title>Sécurité</title>
3852     <p>Il est conseillé d'<em>éviter</em> de placer les fichiers mutex
3853     dans un répertoire où tout le monde peut écrire comme
3854     <code>/var/tmp</code>, car quelqu'un pourrait initier une attaque
3855     par déni de service et empêcher le serveur de démarrer en créant un
3856     fichier verrou possédant un nom identique à celui que le serveur va
3857     tenter de créer.</p>
3858     </note>
3859
3860     <p>La table suivante décrit les noms de mutex utilisés par httpd et
3861     ses modules associés.</p>
3862
3863     <table border="1" style="zebra">
3864         <tr>
3865             <th>Nom mutex</th>
3866             <th>Module(s)</th>
3867             <th>Ressource protégée</th>
3868         </tr>
3869         <tr>
3870             <td><code>mpm-accept</code></td>
3871             <td>modules MPM <module>prefork</module> et <module>worker</module></td>
3872             <td>connexions entrantes, afin d'éviter le problème de
3873             l'afflux de requêtes ; pour plus d'informations, voir la
3874             documentation <a
3875             href="../misc/perf-tuning.html">Amélioration des
3876             performances</a></td>
3877         </tr>
3878         <tr>
3879             <td><code>authdigest-client</code></td>
3880             <td><module>mod_auth_digest</module></td>
3881             <td>liste de clients en mémoire partagée</td>
3882         </tr>
3883         <tr>
3884             <td><code>authdigest-opaque</code></td>
3885             <td><module>mod_auth_digest</module></td>
3886             <td>compteur en mémoire partagée</td>
3887         </tr>
3888         <tr>
3889             <td><code>ldap-cache</code></td>
3890             <td><module>mod_ldap</module></td>
3891             <td>cache de résultat de recherche LDAP</td>
3892         </tr>
3893         <tr>
3894             <td><code>rewrite-map</code></td>
3895             <td><module>mod_rewrite</module></td>
3896             <td>communication avec des programmes externes
3897             d'associations de valeurs, afin d'éviter les interférences
3898             d'entrées/sorties entre plusieurs requêtes</td>
3899         </tr>
3900         <tr>
3901             <td><code>ssl-cache</code></td>
3902             <td><module>mod_ssl</module></td>
3903             <td>cache de session SSL</td>
3904         </tr>
3905         <tr>
3906             <td><code>ssl-stapling</code></td>
3907             <td><module>mod_ssl</module></td>
3908             <td>cache de l'étiquetage OCSP ("OCSP stapling")</td>
3909         </tr>
3910         <tr>
3911             <td><code>watchdog-callback</code></td>
3912             <td><module>mod_watchdog</module></td>
3913             <td>fonction de rappel d'un module client particulier</td>
3914         </tr>
3915     </table>
3916
3917     <p>Le mot-clé <code>OmitPID</code> permet d'empêcher l'addition de
3918     l'identifiant du processus httpd parent au nom du fichier verrou.</p>
3919
3920
3921     <p>Dans l'exemple suivant, le mécanisme de mutex pour le mutex
3922     mpm-accept est modifié pour passer du mécanisme par défaut au
3923     mécanisme <code>fcntl</code>, avec le fichier verrou associé créé
3924     dans le répertoire <code>/var/httpd/locks</code>. Le mécanisme de
3925     mutex par défaut pour tous les autres mutex deviendra
3926     <code>sysvsem</code>.</p>
3927
3928     <highlight language="config">
3929 Mutex sysvsem default
3930 Mutex fcntl:/var/httpd/locks mpm-accept
3931     </highlight>
3932 </usage>
3933 </directivesynopsis>
3934
3935 <directivesynopsis>
3936 <name>NameVirtualHost</name>
3937 <description>OBSOLETE : Définit une adresse IP pour les serveurs virtuels à base de
3938 nom</description>
3939 <syntax>NameVirtualHost <var>adresse</var>[:<var>port</var>]</syntax>
3940 <contextlist><context>server config</context></contextlist>
3941
3942 <usage>
3943
3944     <p>Avant la version 2.3.11, il était nécessaire de définir une
3945     directive <directive>NameVirtualHost</directive> pour indiquer au
3946     serveur qu'une paire adresse IP/port particulière pouvait être
3947     utilisée comme serveur virtuel à base de nom. Depuis la version
3948     2.3.11, chaque fois qu'une paire adresse IP/port est utilisée dans
3949     plusieurs serveurs virtuels, l'hébergement virtuel à base de nom est
3950     automatiquement activé pour cette adresse.</p>
3951     
3952     <p>Cette directive n'a actuellement plus aucun effet.</p>
3953 </usage>
3954
3955 <seealso><a href="../vhosts/">Documentation sur les serveurs
3956 virtuels</a></seealso>
3957
3958 </directivesynopsis>
3959
3960 <directivesynopsis>
3961 <name>Options</name>
3962 <description>Définit les fonctionnalités disponibles pour un répertoire
3963 particulier</description>
3964 <syntax>Options
3965     [+|-]<var>option</var> [[+|-]<var>option</var>] ...</syntax>
3966 <default>Options FollowSymlinks</default>
3967 <contextlist><context>server config</context><context>virtual
3968 host</context>
3969 <context>directory</context><context>.htaccess</context>
3970 </contextlist>
3971 <override>Options</override>
3972 <compatibility>Avec la version 2.3.11, la valeur par défaut passe de All
3973 à FollowSymlinks</compatibility>
3974
3975 <usage>
3976     <p>La directive <directive>Options</directive> permet de définir
3977     les fonctionnalités de serveur disponibles pour un répertoire
3978     particulier.</p>
3979
3980     <p><var>option</var> peut être défini à <code>None</code>, auquel
3981     cas aucune fonctionnalité spécifique n'est activée, ou comprendre
3982     une ou plusieurs des options suivantes :</p>
3983
3984     <dl>
3985       <dt><code>All</code></dt>
3986
3987       <dd>Toutes les options excepté <code>MultiViews</code>.</dd>
3988
3989       <dt><code>ExecCGI</code></dt>
3990
3991       <dd>L'exécution de scripts CGI à l'aide du module
3992       <module>mod_cgi</module> est permise.</dd>
3993
3994       <dt><code>FollowSymLinks</code></dt>
3995
3996       <dd>
3997
3998       Le serveur va suivre les liens symboliques dans le répertoire
3999       concerné. Il s'agit de la valeur par défaut.
4000       <note>
4001       <p>Bien que le serveur suive les liens symboliques, il ne modifie
4002       <em>pas</em> le nom de chemin concerné défini par la section
4003       <directive type="section"
4004       module="core">Directory</directive>.</p>
4005       
4006       <p>Les options <code>FollowSymLinks</code> et
4007       <code>SymLinksIfOwnerMatch</code> ne fonctionnent que dans les
4008       sections <directive type="section"
4009       module="core">Directory</directive> ou les fichiers
4010       <code>.htaccess</code>.</p>
4011
4012       <p>Le fait d'omettre cette option ne doit pas être considéré comme
4013       une mesure de sécurité efficace, car il existe toujours une
4014       situation de compétition (race condition) entre l'instant où l'on
4015       vérifie qu'un chemin n'est pas un lien symbolique, et l'instant où
4016       l'on utilise effectivement ce chemin.</p>
4017       </note></dd>
4018
4019       <dt><code>Includes</code></dt>
4020
4021       <dd>
4022       Les inclusions côté serveur (SSI) à l'aide du module
4023       <module>mod_include</module> sont autorisées.</dd>
4024
4025       <dt><code>IncludesNOEXEC</code></dt>
4026
4027       <dd>
4028
4029       Les inclusions côté serveur (SSI) sont permises, mais <code>#exec
4030       cmd</code> et <code>#exec cgi</code> sont désactivés.
4031       L'utilisation de <code>#include virtual</code> pour les scripts
4032       CGI est cependant toujours possible depuis des répertoires
4033       définis par <directive
4034       module="mod_alias">ScriptAlias</directive>.</dd>
4035
4036       <dt><code>Indexes</code></dt>
4037
4038       <dd>
4039       Si une URL requise correspond au répertoire concerné, et si aucun
4040       <directive module="mod_dir">DirectoryIndex</directive> (<em>par
4041       exemple</em> <code>index.html</code>) n'est défini pour ce
4042       répertoire, le module <module>mod_autoindex</module> va renvoyer
4043       un listing formaté du répertoire.</dd>
4044
4045       <dt><code>MultiViews</code></dt>
4046
4047       <dd>
4048       Les vues multiples ("multiviews") à <a
4049       href="../content-negotiation.html">contenu négocié</a> à l'aide du
4050       module <module>mod_negotiation</module> sont autorisées.
4051       <note><title>Note</title> <p>Cette option est ignorée si elle est
4052       définie en tout autre endroit qu'une section <directive
4053       module="core" type="section">Directory</directive>, car
4054       <module>mod_negotiation</module> a besoin de ressources réelles
4055       pour effectuer ses comparaisons et ses évaluations.</p></note>
4056       
4057       </dd>
4058
4059       <dt><code>SymLinksIfOwnerMatch</code></dt>
4060
4061       <dd>Le serveur ne suivra que les liens symboliques qui renvoient
4062       vers un fichier ou un répertoire dont le propriétaire est le même
4063       que celui du lien.
4064
4065       <note><title>Note</title>
4066       <p>Les options <code>FollowSymLinks</code> et
4067       <code>SymLinksIfOwnerMatch</code> ne fonctionnent que dans les
4068       sections <directive type="section"
4069       module="core">Directory</directive> ou les fichiers
4070       <code>.htaccess</code>.</p>
4071
4072       <p>Le fait d'omettre cette option ne doit pas être considéré comme
4073       une mesure de sécurité efficace, car il existe toujours une
4074       situation de compétition (race condition) entre l'instant où l'on
4075       vérifie qu'un chemin n'est pas un lien symbolique, et l'instant où
4076       l'on utilise effectivement ce chemin.</p>
4077       </note> </dd>
4078     </dl>
4079
4080     <p>Normalement, si plusieurs directives
4081     <directive>Options</directive> peuvent s'appliquer à un répertoire,
4082     c'est la plus spécifique qui est utilisée et les autres sont
4083     ignorées ; les options ne sont pas fusionnées (voir <a
4084     href="../sections.html#merging">comment les sections sont
4085     fusionnées</a>). Elles le sont cependant si <em>toutes</em> les
4086     options de la directive <directive>Options</directive> sont
4087     précédées d'un symbole <code>+</code> ou <code>-</code>. Toute
4088     option précédée d'un <code>+</code> est ajoutée à la liste des
4089     options courantes de manière forcée et toute option précédée d'un
4090     <code>-</code> est supprimée de la liste des options courantes de la
4091     même manière.</p>
4092
4093     <note><title>Note</title>
4094     <p>Mélanger des <directive>Options</directive> avec <code>+</code>
4095     ou <code>-</code> avec des <directive>Options</directive> sans
4096     <code>+</code> ou <code>-</code> constitue une erreur de syntaxe, et
4097     la vérification de la syntaxe au cours du démarrage du serveur fera
4098     échouer ce dernier.</p>
4099     </note>
4100
4101     <p>Par exemple, sans aucun symbole <code>+</code> et <code>-</code>
4102     :</p>
4103
4104     <highlight language="config">
4105 &lt;Directory "/web/docs"&gt;
4106   Options Indexes FollowSymLinks
4107 &lt;/Directory&gt;
4108
4109 &lt;Directory "/web/docs/spec"&gt;
4110   Options Includes
4111 &lt;/Directory&gt;
4112     </highlight>
4113
4114     <p>ici, seule l'option <code>Includes</code> sera prise en compte
4115     pour le répertoire <code>/web/docs/spec</code>. Par contre, si la
4116     seconde directive <directive>Options</directive> utilise les
4117     symboles <code>+</code> et <code>-</code> :</p>
4118
4119     <highlight language="config">
4120 &lt;Directory "/web/docs"&gt;
4121   Options Indexes FollowSymLinks
4122 &lt;/Directory&gt;
4123
4124 &lt;Directory "/web/docs/spec"&gt;
4125   Options +Includes -Indexes
4126 &lt;/Directory&gt;
4127     </highlight>
4128
4129     <p>alors, les options <code>FollowSymLinks</code> et
4130     <code>Includes</code> seront prises en compte pour le répertoire
4131     <code>/web/docs/spec</code>.</p>
4132
4133     <note><title>Note</title>
4134       <p>L'utilisation de <code>-IncludesNOEXEC</code> ou
4135       <code>-Includes</code> désactive complètement les inclusions côté
4136       serveur sans tenir compte des définitions précédentes.</p>
4137     </note>
4138
4139     <p>En l'absence de toute définition d'options, la valeur par défaut
4140     est <code>FollowSymlinks</code>.</p>
4141 </usage>
4142 </directivesynopsis>
4143
4144 <directivesynopsis>
4145 <name>Protocol</name>
4146 <description>Protocole pour une socket d'écoute</description>
4147 <syntax>Protocol <var>protocole</var></syntax>
4148 <contextlist><context>server config</context><context>virtual host</context></contextlist>
4149 <compatibility>Sous Windows, disponible à partir de la version 2.3.3 du
4150 serveur HTTP Apache.</compatibility>
4151
4152 <usage>
4153     <p>Cette directive permet de spécifier le protocole utilisé pour une
4154     socket d'écoute particulière. Le protocole sert à déterminer quel
4155     module doit traiter une requête, et d'appliquer les optimisations
4156     spécifiques au protocole via la directive
4157     <directive>AcceptFilter</directive>.</p>
4158
4159     <p>Vous ne devez définir le protocole que si vous travaillez avec
4160     des ports non standards ; dans le cas général, le protocole
4161     <code>http</code> est associé au port 80 et le protocole
4162     <code>https</code> au port 443.</p>
4163
4164     <p>Par exemple, si vous travaillez avec le protocole
4165     <code>https</code> sur un port non standard, spécifiez le protocole
4166     de manière explicite :</p>
4167
4168     <highlight language="config">Protocol https</highlight>
4169
4170     <p>Vous pouvez aussi spécifier le protocole via la directive
4171     <directive module="mpm_common">Listen</directive>.</p>
4172 </usage>
4173 <seealso><directive module="core">AcceptFilter</directive></seealso>
4174 <seealso><directive module="mpm_common">Listen</directive></seealso>
4175 </directivesynopsis>
4176
4177 <directivesynopsis>
4178     <name>Protocols</name>
4179     <description>Protocoles disponibles pour un serveur virtuel ou non</description>
4180     <syntax>Protocols <var>protocole</var> ...</syntax>
4181     <default>Protocols http/1.1</default>
4182     <contextlist><context>server config</context><context>virtual host</context></contextlist>
4183     <compatibility>Disponible à partir de la version 2.4.17 du serveur
4184     HTTP Apache.</compatibility>
4185     
4186     <usage>
4187         <p>Cette directive permet de spécifier la liste des protocoles
4188         supportés par un serveur virtuel ou non. Cette liste énumère les
4189         protocoles qu'un client sera autorisé à négocier avec ce
4190         serveur.</p>
4191         
4192         <p>Par défaut,
4193         seul le protocole http/1.1 est disponible (compatible avec les
4194         clients http/1.0 et http/0.9). Par conséquent, vous devez
4195         fournir cette liste si vous voulez étendre les protocoles
4196         disponibles pour le serveur.</p>
4197         
4198         <p>Par exemple, si vous voulez autoriser le protocole
4199         HTTP/2 pour un serveur avec TLS, utilisez
4200         cette directive comme suit :</p>
4201         
4202         <highlight language="config">
4203             Protocols h2 http/1.1
4204         </highlight>
4205
4206         <p>Les protocoles valides sont <code>http/1.1</code> pour les
4207         connexions http et https, <code>h2</code> pour les connections
4208         https et <code>h2c</code> pour les connexions http. D'autres
4209         modules peuvent fournir d'autres protocoles.</p>
4210         
4211         <p>Spécifier des protocoles non disponibles ou désactivés n'aura
4212         aucun effet, et ceux-ci seront simplement ignorés.</p>
4213         
4214         <p>Si un serveur virtuel ne possède pas de directive Protocols
4215         propre, il hérite des protocoles spécifiés pour le serveur
4216         principal. Autrement dit, les directives Protocols définies au
4217         niveau d'un serveur virtuel remplacent celles définies au niveau
4218         du serveur principal.
4219         </p>
4220
4221     </usage>
4222     <seealso><directive module="core">ProtocolsHonorOrder</directive></seealso>
4223 </directivesynopsis>
4224
4225
4226 <directivesynopsis>
4227     <name>ProtocolsHonorOrder</name>
4228     <description>Détermine qui du client ou du serveur détermine l'ordre
4229     des protocoles au cours de la négociation de la connexion</description>
4230     <syntax>ProtocolsHonorOrder On|Off</syntax>
4231     <default>ProtocolsHonorOrder On</default>
4232     <contextlist><context>server config</context><context>virtual host</context></contextlist>
4233     <compatibility>Disponible à partir de la version 2.4.17 du serveur
4234     HTTP Apache.</compatibility>
4235     
4236     <usage>
4237         <p>Cette directive permet de définir si le serveur doit tenir
4238         compte de l'ordre des protocoles définis par la directive
4239         <directive>Protocols</directive>.</p>
4240         
4241         <p>Si cette directive est définie à Off, l'ordre de la liste des
4242         protocoles fournie par le client l'emporte sur l'ordre défini
4243         dans la configuration du serveur.</p>
4244         
4245         <p>Si la directive <directive>ProtocolsHonorOrder</directive>
4246         est définie à <code>on</code> (valeur par défaut),
4247         il n'est pas tenu compte de l'ordre de la liste des protocoles
4248         fournie par le client, et seul l'ordre de la liste des protocles
4249         définie au niveau du serveur influera la
4250         négociation du protocole.</p>
4251         
4252     </usage>
4253     <seealso><directive module="core">Protocols</directive></seealso>
4254 </directivesynopsis>
4255
4256 <directivesynopsis>
4257 <name>RLimitCPU</name>
4258 <description>Limite le temps CPU alloué aux processus initiés par les
4259 processus enfants d'Apache httpd</description>
4260 <syntax>RLimitCPU <var>secondes</var>|max [<var>secondes</var>|max]</syntax>
4261 <default>Non défini ; utilise les valeurs par défaut du système
4262 d'exploitation</default>
4263 <contextlist><context>server config</context><context>virtual
4264 host</context>
4265 <context>directory</context><context>.htaccess</context></contextlist>
4266 <override>All</override>
4267
4268 <usage>
4269     <p>Prend 1 ou 2 paramètres. Le premier definit la limite de
4270     consommation de ressources pour tous les processus, et le second la
4271     consommation de ressources maximale. Les deux paramètres peuvent
4272     contenir soit un nombre, soit <code>max</code> pour indiquer au
4273     serveur que la limite de consommation correspond à la valeur
4274     maximale autorisée par la configuration du système d'exploitation.
4275     Pour augmenter la consommation maximale de ressources, le serveur
4276     doit s'exécuter en tant que <code>root</code>, ou se trouver dans sa
4277     phase de démarrage.</p>
4278
4279     <p>Cette directive s'applique aux processus initiés par les
4280     processus enfants d'Apache httpd qui traitent les requêtes, et non aux
4281     processus enfants eux-mêmes. Sont concernés les scripts CGI et les
4282     commandes exec des SSI, mais en aucun cas les processus initiés par
4283     le processus parent d'Apache httpd comme les journalisations redirigées
4284     vers un programme.</p>
4285
4286     <p>Les limites de ressources CPU sont exprimées en secondes par
4287     processus.</p>
4288 </usage>
4289 <seealso><directive module="core">RLimitMEM</directive></seealso>
4290 <seealso><directive module="core">RLimitNPROC</directive></seealso>
4291 </directivesynopsis>
4292
4293 <directivesynopsis>
4294 <name>RLimitMEM</name>
4295 <description>Limite la mémoire allouée aux processus initiés par les
4296 processus enfants d'Apache httpd</description>
4297 <syntax>RLimitMEM <var>octets</var>|max [<var>octets</var>|max]</syntax>
4298 <default>Non défini ; utilise les valeurs par défaut du système
4299 d'exploitation</default>
4300 <contextlist><context>server config</context><context>virtual
4301 host</context>
4302 <context>directory</context><context>.htaccess</context></contextlist>
4303 <override>All</override>
4304
4305 <usage>
4306     <p>Prend 1 ou 2 paramètres. Le premier definit la limite de
4307     consommation de ressources pour tous les processus, et le second la
4308     consommation de ressources maximale. Les deux paramètres peuvent
4309     contenir soit un nombre, soit <code>max</code> pour indiquer au
4310     serveur que la limite de consommation correspond à la valeur
4311     maximale autorisée par la configuration du système d'exploitation.
4312     Pour augmenter la consommation maximale de ressources, le serveur
4313     doit s'exécuter en tant que <code>root</code>, ou se trouver dans sa
4314     phase de démarrage.</p>
4315
4316     <p>Cette directive s'applique aux processus initiés par les
4317     processus enfants d'Apache httpd qui traitent les requêtes, et non aux
4318     processus enfants eux-mêmes. Sont concernés les scripts CGI et les
4319     commandes exec des SSI, mais en aucun cas les processus initiés par
4320     le processus parent d'Apache httpd comme les journalisations redirigées
4321     vers un programme.</p>
4322
4323     <p>Les limites de ressources mémoire sont exprimées en octets par
4324     processus.</p>
4325 </usage>
4326 <seealso><directive module="core">RLimitCPU</directive></seealso>
4327 <seealso><directive module="core">RLimitNPROC</directive></seealso>
4328 </directivesynopsis>
4329
4330 <directivesynopsis>
4331 <name>RLimitNPROC</name>
4332 <description>Limite le nombre de processus qui peuvent être initiés par
4333 les processus initiés par les processus enfants d'Apache httpd</description>
4334 <syntax>RLimitNPROC <var>nombre</var>|max [<var>nombre</var>|max]</syntax>
4335 <default>Unset; uses operating system defaults</default>
4336 <contextlist><context>server config</context><context>virtual
4337 host</context>
4338 <context>directory</context><context>.htaccess</context></contextlist>
4339 <override>All</override>
4340
4341 <usage>
4342     <p>Prend 1 ou 2 paramètres. Le premier definit la limite de
4343     consommation de ressources pour tous les processus, et le second la
4344     consommation de ressources maximale. Les deux paramètres peuvent
4345     contenir soit un nombre, soit <code>max</code> pour indiquer au
4346     serveur que la limite de consommation correspond à la valeur
4347     maximale autorisée par la configuration du système d'exploitation.
4348     Pour augmenter la consommation maximale de ressources, le serveur
4349     doit s'exécuter en tant que <code>root</code>, ou se trouver dans sa
4350     phase de démarrage.</p>
4351
4352     <p>Cette directive s'applique aux processus initiés par les
4353     processus enfants d'Apache httpd qui traitent les requêtes, et non aux
4354     processus enfants eux-mêmes. Sont concernés les scripts CGI et les
4355     commandes exec des SSI, mais en aucun cas les processus initiés par
4356     le processus parent d'Apache httpd comme les journalisations redirigées
4357     vers un programme.</p>
4358
4359     <p>Les limites des processus contrôlent le nombre de processus par
4360     utilisateur.</p>
4361
4362     <note><title>Note</title>
4363       <p>Si les processus CGI s'exécutent sous le même
4364       utilisateur que celui du serveur web, cette
4365       directive va limiter le nombre de processus que le serveur
4366       pourra lui-même créer. La présence de messages
4367       <strong><code>cannot fork</code></strong> dans le journal des
4368       erreurs indiquera que la limite est atteinte.</p>
4369     </note>
4370 </usage>
4371 <seealso><directive module="core">RLimitMEM</directive></seealso>
4372 <seealso><directive module="core">RLimitCPU</directive></seealso>
4373 </directivesynopsis>
4374
4375 <directivesynopsis>
4376 <name>ScriptInterpreterSource</name>
4377 <description>Permet de localiser l'interpréteur des scripts
4378 CGI</description>
4379 <syntax>ScriptInterpreterSource Registry|Registry-Strict|Script</syntax>
4380 <default>ScriptInterpreterSource Script</default>
4381 <contextlist><context>server config</context><context>virtual
4382 host</context>
4383 <context>directory</context><context>.htaccess</context></contextlist>
4384 <override>FileInfo</override>
4385 <compatibility>Win32 seulement</compatibility>
4386
4387 <usage>
4388     <p>Cette directive permet de contrôler la méthode qu'utilise Apache
4389     httpd pour trouver l'interpréteur destiné à exécuter les scripts CGI. La
4390     définition par défaut est <code>Script</code> : ceci indique à
4391     Apache httpd qu'il doit utiliser l'interpréteur précisé dans la ligne
4392     shebang du script (la première ligne, commençant par
4393     <code>#!</code>). Sur les systèmes Win32, cette ligne ressemble
4394     souvent à ceci :</p>
4395
4396     <highlight language="perl">#!C:/Perl/bin/perl.exe</highlight>
4397
4398     <p>ou simplement, dans le cas où <code>perl</code> est dans le
4399     <code>PATH</code> :</p>
4400
4401     <highlight language="perl">#!perl</highlight>
4402
4403     <p>Avec <code>ScriptInterpreterSource Registry</code>, Windows va
4404     effectuer une recherche dans l'arborescence
4405     <code>HKEY_CLASSES_ROOT</code> de la base de registre avec comme
4406     mot-clé l'extension du fichier contenant le script (par exemple
4407     <code>.pl</code>). C'est la commande définie par la sous-clé de
4408     registre <code>Shell\ExecCGI\Command</code> ou, si elle n'existe
4409     pas, la sous-clé <code>Shell\Open\Command</code> qui est utilisée
4410     pour ouvrir le fichier du script. Si ces clés de registre ne sont
4411     pas trouvées, Apache httpd utilise la méthode de l'option
4412     <code>Script</code>.</p>
4413
4414     <note type="warning"><title>Sécurité</title>
4415     <p>Soyez prudent si vous utilisez <code>ScriptInterpreterSource
4416     Registry</code> avec des répertoires faisant l'objet d'un <directive
4417     module="mod_alias">ScriptAlias</directive>, car Apache httpd va essayer
4418     d'exécuter <strong>tous</strong> les fichiers contenus dans
4419     celui-ci. L'option <code>Registry</code> peut causer des appels de
4420     programmes non voulus sur des fichiers non destinés à être exécutés.
4421     Par exemple, la commande par défaut open sur les fichiers
4422     <code>.htm</code> sur la plupart des systèmes Windows va lancer
4423     Microsoft Internet Explorer ; ainsi, toute requête HTTP pour un
4424     fichier <code>.htm</code> situé dans le répertoire des scripts
4425     va lancer le navigateur en arrière-plan sur le serveur, ce qui a
4426     toutes les chances de crasher votre système dans les minutes qui
4427     suivent.</p>
4428     </note>
4429
4430     <p>L'option <code>Registry-Strict</code>, apparue avec la version
4431     2.0 du serveur HTTP Apache,
4432     agit de manière identique à <code>Registry</code>, mais n'utilise
4433     que la sous-clé <code>Shell\ExecCGI\Command</code>. La présence de
4434     la clé <code>ExecCGI</code> n'étant pas systématique, Elle doit être
4435     définie manuellement dans le registre Windows et évite ainsi tout
4436     appel de programme accidentel sur votre système.</p>
4437 </usage>
4438 </directivesynopsis>
4439
4440 <directivesynopsis>
4441 <name>SeeRequestTail</name>
4442 <description>Détermine si mod_status affiche les 63 premiers caractères
4443 d'une requête ou les 63 derniers, en supposant que la requête
4444 elle-même possède plus de 63 caractères.</description>
4445 <syntax>SeeRequestTail On|Off</syntax>
4446 <default>SeeRequestTail Off</default>
4447 <contextlist><context>server config</context></contextlist>
4448
4449 <usage>
4450     <p>Avec <code>ExtendedStatus On</code>, mod_status affiche la
4451     véritable requête en cours de traitement. Pour des raisons
4452     historiques, seuls 63 caractères de la requête sont réellement
4453     stockés à des fins d'affichage. Cette directive permet de déterminer
4454     si ce sont les 63 premiers caractères qui seront stockés (c'est le
4455     comportement par défaut),
4456     ou si ce sont les 63 derniers. Ceci ne s'applique bien entendu que
4457     si la taille de la requête est de 64 caractères ou plus.</p>
4458
4459     <p>Si Apache httpd traite la requête <code
4460     >GET&nbsp;/disque1/stockage/apache/htdocs/images/rep-images1/nourriture/pommes.jpg&nbsp;HTTP/1.1</code>
4461     , l'affichage de la requête par mod_status se présentera comme suit :
4462     </p>
4463
4464     <table border="1">
4465       <tr>
4466         <th>Off (défaut)</th>
4467         <td>GET&nbsp;/disque1/stockage/apache/htdocs/images/rep-images1/nourritu</td>
4468       </tr>
4469       <tr>
4470         <th>On</th>
4471         <td>apache/htdocs/images/rep-images1/nourriture/pommes.jpg&nbsp;HTTP/1.1</td>
4472       </tr>
4473     </table>
4474
4475 </usage>
4476
4477 </directivesynopsis>
4478
4479 <directivesynopsis>
4480 <name>ServerAdmin</name>
4481 <description>L'adresse électronique que le serveur inclut dans les
4482 messages d'erreur envoyés au client</description>
4483 <syntax>ServerAdmin <var>adresse électronique</var>|<var>URL</var></syntax>
4484 <contextlist><context>server config</context><context>virtual
4485 host</context>
4486 </contextlist>
4487
4488 <usage>
4489     <p>La directive <directive>ServerAdmin</directive> permet de définir
4490     l'adresse de contact que le serveur va inclure dans tout message
4491     d'erreur qu'il envoie au client. Si le programme <code>httpd</code>
4492     ne reconnait pas l'argument fourni comme une URL, il suppose que
4493     c'est une <var>adresse électronique</var>, et lui ajoute le préfixe
4494     <code>mailto:</code> dans les cibles des hyperliens. Il est
4495     cependant recommandé d'utiliser exclusivement une adresse
4496     électronique, car de nombreux scripts CGI considèrent ceci comme
4497     implicite. Si vous utilisez une URL, elle doit pointer vers un autre
4498     serveur que vous contrôlez. Dans le cas contraire, les utilisateurs
4499     seraient dans l'impossibilité de vous contacter en cas de problème.</p>
4500
4501     <p>Il peut s'avérer utile de définir une adresse dédiée à
4502     l'administration du serveur, par exemple :</p>
4503
4504     <highlight language="config">ServerAdmin www-admin@foo.example.com</highlight>
4505     <p>car les utilisateurs ne mentionnent pas systématiquement le
4506     serveur dont ils parlent !</p>
4507 </usage>
4508 </directivesynopsis>
4509
4510 <directivesynopsis>
4511 <name>ServerAlias</name>
4512 <description>Autres noms d'un serveur utilisables pour atteindre des
4513 serveurs virtuels à base de nom</description>
4514 <syntax>ServerAlias <var>nom serveur</var> [<var>nom serveur</var>]
4515 ...</syntax>
4516 <contextlist><context>virtual host</context></contextlist>
4517
4518 <usage>
4519     <p>La directive <directive>ServerAlias</directive> permet de définir
4520     les noms alternatifs d'un serveur utilisables pour atteindre des <a
4521     href="../vhosts/name-based.html">serveurs virtuels à base de
4522     nom</a>. La directive <directive>ServerAlias</directive> peut
4523     contenir des caractères génériques, si nécessaire.</p>
4524
4525     <highlight language="config">
4526 &lt;VirtualHost *:80&gt;
4527   ServerName server.example.com
4528   ServerAlias server server2.example.com server2
4529   ServerAlias *.example.com
4530   UseCanonicalName Off
4531   # ...
4532 &lt;/VirtualHost&gt;
4533     </highlight>
4534     <p>La recherche du serveur virtuel à base de nom correspondant au
4535     plus près à la requête s'effectue selon l'ordre d'apparition des
4536     directives <directive type="section"
4537     module="core">virtualhost</directive> dans le fichier de
4538     configuration. Le premier serveur virtuel dont le <directive
4539     module="core">ServerName</directive> ou le <directive
4540     module="core">ServerAlias</directive> correspond est choisi, sans
4541     priorité particulière si le nom contient des caractères génériques
4542     (que ce soit pour ServerName ou ServerAlias).</p>
4543
4544     <p>Tous les noms spécifiés au sein d'une section
4545     <directive type="section" module="core">VirtualHost</directive> sont traités comme un
4546     <directive type="section" module="core">ServerAlias</directive>
4547     (sans caractères génériques).</p>
4548
4549 </usage>
4550 <seealso><directive module="core">UseCanonicalName</directive></seealso>
4551 <seealso><a href="../vhosts/">Documentation sur les serveurs virtuels
4552 du serveur HTTP Apache</a></seealso>
4553 </directivesynopsis>
4554
4555 <directivesynopsis>
4556 <name>ServerName</name>
4557 <description>Nom d'hôte et port que le serveur utilise pour
4558 s'authentifier lui-même</description>
4559 <syntax>ServerName
4560 [<var>protocole</var>://]<var>nom-de-domaine</var>|<var>adresse-ip</var>[:<var>port</var>]</syntax>
4561 <contextlist><context>server config</context><context>virtual
4562 host</context>
4563 </contextlist>
4564
4565 <usage>
4566     <p>La directive <directive>ServerName</directive> permet de définir
4567     les protocole, nom d'hôte et port d'une requête que le serveur
4568     utilise pour s'authentifier lui-même.</p>
4569
4570     <p>La directive <directive>ServerName</directive> permet
4571     (éventuellement en conjonction avec la directive
4572     <directive module="core">ServerAlias</directive>) d'identifier de manière unique
4573     un serveur virtuel, lorsqu'elle est utilisée dans un contexte de <a
4574     href="../vhosts/name-based.html">serveurs virtuels à base de
4575     noms</a>.</p>
4576
4577     <p>Cette directive est aussi utilisée lors de la création d'URLs de
4578     redirection relatives quand la directive
4579     <directive module="core">UseCanonicalName</directive> est définie à une valeur autre que
4580     la valeur par défaut.</p>
4581     
4582     <p>Par exemple, si le nom de la
4583     machine hébergeant le serveur web est
4584     <code>simple.example.com</code>, la machine possède l'alias
4585     DNS <code>www.example.com</code>, et si vous voulez que le serveur
4586     web s'identifie avec cet alias, vous devez utilisez la définition
4587     suivante :</p>
4588
4589     <highlight language="config">ServerName www.example.com</highlight>
4590
4591     <p>La directive <directive>ServerName</directive> peut apparaître à
4592     toutes les étapes de la définition du serveur. Toute occurrence
4593     annule cependant la précédente (pour ce serveur).</p>
4594
4595     <p>Si la directive <directive>ServerName</directive> n'est pas
4596     définie, le serveur tente de déterminer le nom
4597     d'hôte visible du point de vue du client en demandant tout d'abord au
4598     système d'exploitation le nom d'hôte système, et en cas d'échec, en effectuant
4599     une recherche DNS inverse sur une adresse IP présente sur le système.</p>
4600     
4601     <p>Si la directive
4602     <directive>ServerName</directive> ne précise pas de port, le serveur
4603     utilisera celui de la requête entrante. Il est recommandé de
4604     spécifier un nom d'hôte et un port spécifiques à l'aide de la
4605     directive <directive>ServerName</directive> pour une fiabilité
4606     optimale et à titre préventif.</p>
4607
4608     <p>Si vous définissez des <a
4609     href="../vhosts/name-based.html">serveurs virtuels à base de
4610     nom</a>, une directive <directive>ServerName</directive> située à
4611     l'intérieur d'une section <directive type="section"
4612     module="core">VirtualHost</directive> spécifiera quel nom d'hôte
4613     doit apparaître dans l'en-tête de requête <code>Host:</code> pour
4614     pouvoir atteindre ce serveur virtuel.</p>
4615
4616
4617     <p>Parfois, le serveur s'exécute en amont d'un dispositif qui
4618     implémente SSL, comme un mandataire inverse, un répartiteur de
4619     charge ou un boîtier dédié SSL. Dans ce cas, spécifiez le protocole
4620     <code>https://</code> et le port auquel les clients se connectent
4621     dans la directive <directive>ServerName</directive>, afin de
4622     s'assurer que le serveur génère correctement ses URLs
4623     d'auto-identification.
4624     </p>
4625
4626     <p>Voir la description des directives <directive
4627     module="core">UseCanonicalName</directive> et <directive
4628     module="core">UseCanonicalPhysicalPort</directive> pour les
4629     définitions qui permettent de déterminer si les URLs
4630     auto-identifiantes (par exemple via le module
4631     <module>mod_dir</module>) vont faire référence au port spécifié, ou
4632     au port indiqué dans la requête du client.
4633     </p>
4634
4635     <note type="warning">
4636     <p>Si la valeur de la directive <directive>ServerName</directive> ne
4637     peut pas être résolue en adresse IP, le démarrage du serveur
4638     provoquera un avertissement. <code>httpd</code> va alors utiliser le
4639     résultat de la commande système <code>hostname</code> pour
4640     déterminer le nom du serveur, ce qui ne correspondra pratiquement
4641     jamais au nom de serveur que vous souhaitez réellement.</p>
4642     <example>
4643     httpd: Could not reliably determine the server's fully qualified domain name, using rocinante.local for ServerName
4644     </example>
4645     </note>
4646
4647 </usage>
4648
4649 <seealso><a href="../dns-caveats.html">Problèmes concernant le DNS et
4650 le serveur HTTP Apache</a></seealso>
4651 <seealso><a href="../vhosts/">Documentation sur les serveurs virtuels
4652 du serveur HTTP Apache</a></seealso>
4653 <seealso><directive module="core">UseCanonicalName</directive></seealso>
4654 <seealso><directive module="core">UseCanonicalPhysicalPort</directive></seealso>
4655 <seealso><directive module="core">ServerAlias</directive></seealso>
4656 </directivesynopsis>
4657
4658 <directivesynopsis>
4659 <name>ServerPath</name>
4660 <description>Nom de chemin d'URL hérité pour un serveur virtuel à base
4661 de nom accédé par un navigateur incompatible</description>
4662 <syntax>ServerPath <var>chemin d'URL</var></syntax>
4663 <contextlist><context>virtual host</context></contextlist>
4664
4665 <usage>
4666     <p>La directive <directive>ServerPath</directive> permet de définir
4667     le nom de chemin d'URL hérité d'un hôte, à utiliser avec les <a
4668     href="../vhosts/">serveurs virtuels à base de nom</a>.</p>
4669 </usage>
4670 <seealso><a href="../vhosts/">Documentation sur les serveurs virtuels
4671 du serveur HTTP Apache</a></seealso>
4672 </directivesynopsis>
4673
4674 <directivesynopsis>
4675 <name>ServerRoot</name>
4676 <description>Racine du répertoire d'installation du
4677 serveur</description>
4678 <syntax>ServerRoot <var>chemin de répertoire</var></syntax>
4679 <default>ServerRoot /usr/local/apache</default>
4680 <contextlist><context>server config</context></contextlist>
4681
4682 <usage>
4683     <p>La directive <directive>ServerRoot</directive> permet de définir
4684     le répertoire dans lequel le serveur est installé. En particulier,
4685     il contiendra les sous-répertoires <code>conf/</code> et
4686     <code>logs/</code>. Les chemins relatifs indiqués dans les autres
4687     directives (comme <directive
4688     module="core">Include</directive> ou <directive
4689     module="mod_so">LoadModule</directive>) seront définis par
4690     rapport à ce répertoire.</p>
4691
4692     <highlight language="config">ServerRoot "/home/httpd"</highlight>
4693
4694     <p>La valeur par défaut de <directive>ServerRoot</directive> peut
4695     être modifiée via l'argument <code>--prefix</code> de la commande <a
4696     href="../programs/configure.html"><code>configure</code></a>, et de
4697     nombreuses distributions tierces du serveur proposent une valeur
4698     différente de celles listées ci-dessus.</p>
4699
4700 </usage>
4701 <seealso><a href="../invoking.html">the <code>-d</code>
4702     options de <code>httpd</code></a></seealso>
4703 <seealso><a href="../misc/security_tips.html#serverroot">les conseils à
4704 propos de sécurité</a> pour des informations sur la manière de définir
4705 correctement les permissions sur le répertoire indiqué par la directive
4706 <directive>ServerRoot</directive></seealso>
4707 </directivesynopsis>
4708
4709 <directivesynopsis>
4710 <name>ServerSignature</name>
4711 <description>Définit un pied de page pour les documents générés par le
4712 serveur</description>
4713 <syntax>ServerSignature On|Off|EMail</syntax>
4714 <default>ServerSignature Off</default>
4715 <contextlist><context>server config</context><context>virtual
4716 host</context>
4717 <context>directory</context><context>.htaccess</context>
4718 </contextlist>
4719 <override>All</override>
4720
4721 <usage>
4722     <p>La directive <directive>ServerSignature</directive> permet de
4723     définir une ligne de pied de page fixe pour les documents générés
4724     par le serveur (messages d'erreur, listings de répertoires ftp de
4725     <module>mod_proxy</module>, sorties de <module>mod_info</module>,
4726     etc...). Dans le cas d'une chaîne de mandataires, l'utilisateur n'a
4727     souvent aucun moyen de déterminer lequel des mandataires chaînés a
4728     généré un message d'erreur, et c'est une des raisons pour lesquelles
4729     on peut être amené à ajouter un tel pied de page.</p>
4730
4731     <p>La valeur par défaut <code>Off</code> supprime la ligne de pied
4732     de page (et est ainsi compatible avec le comportement des
4733     versions 1.2 et antérieures d'Apache). la valeur <code>On</code>
4734     ajoute simplement une ligne contenant le numéro de version du
4735     serveur ainsi que le nom du serveur virtuel issu de la directive
4736     <directive module="core">ServerName</directive>, alors que la valeur
4737     <code>EMail</code> ajoute en plus une référence "mailto:" à
4738     l'administrateur du document référencé issu la directive
4739     <directive module="core">ServerAdmin</directive>.</p>
4740
4741     <p>Après la version 2.0.44, les détails à propos du numéro de
4742     version du serveur sont contrôlés à l'aide de la directive
4743     <directive module="core">ServerTokens</directive>.</p>
4744 </usage>
4745 <seealso><directive module="core">ServerTokens</directive></seealso>
4746 </directivesynopsis>
4747
4748 <directivesynopsis>
4749 <name>ServerTokens</name>
4750 <description>Configure l'en-tête <code>Server</code> de la réponse
4751 HTTP</description>
4752 <syntax>ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full</syntax>
4753 <default>ServerTokens Full</default>
4754 <contextlist><context>server config</context></contextlist>
4755
4756 <usage>
4757     <p>Cette directive permet de contrôler le contenu de l'en-tête
4758     <code>Server</code> inclus dans la réponse envoyée au client : cet
4759     en-tête peut contenir le type de système d'exploitation du serveur,
4760     ainsi que des informations à propos des modules compilés avec le
4761     serveur.</p>
4762
4763     <dl>
4764         <dt><code>ServerTokens Full</code> (ou non spécifié)</dt>
4765
4766         <dd>Le serveur envoie par exemple : <code>Server: Apache/2.4.2
4767         (Unix) PHP/4.2.2 MyMod/1.2</code></dd>
4768
4769         <dt><code>ServerTokens Prod[uctOnly]</code></dt>
4770
4771       <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4772       Apache</code></dd>
4773
4774       <dt><code>ServerTokens Major</code></dt>
4775
4776       <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4777       Apache/2</code></dd>
4778
4779       <dt><code>ServerTokens Minor</code></dt>
4780
4781       <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4782       Apache/2.4</code></dd>
4783
4784       <dt><code>ServerTokens Min[imal]</code></dt>
4785
4786       <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4787       Apache/2.4.2</code></dd>
4788
4789       <dt><code>ServerTokens OS</code></dt>
4790
4791       <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4792       Apache/2.4.2 (Unix)</code></dd>
4793
4794       
4795       
4796     </dl>
4797
4798     <p>Cette définition s'applique à l'ensemble du serveur et ne peut
4799     être activée ou désactivée pour tel ou tel serveur virtuel.</p>
4800
4801     <p>Dans les versions postérieures à 2.0.44, cette directive contrôle
4802     aussi les informations fournies par la directive <directive
4803     module="core">ServerSignature</directive>.</p>
4804
4805     <note>Définir <directive>ServerTokens</directive> à une
4806     valeur inférieure à <code>minimal</code> n'est pas
4807     recommandé car le débogage des problèmes
4808     interopérationnels n'en sera alors que plus difficile. Notez
4809     aussi que la désactivation de l'en-tête Server:
4810     n'améliore en rien la sécurité de votre
4811     serveur ; le concept de "sécurité par
4812     l'obscurité" est un mythe et conduit à
4813     une mauvaise perception de ce qu'est la sécurité.</note>
4814
4815
4816 </usage>
4817 <seealso><directive module="core">ServerSignature</directive></seealso>
4818 </directivesynopsis>
4819
4820 <directivesynopsis>
4821 <name>SetHandler</name>
4822 <description>Force le traitement des fichiers spécifiés par un
4823 gestionnaire particulier</description>
4824 <syntax>SetHandler <var>handler-name</var>|none|<var>expression</var></syntax>
4825 <contextlist><context>server config</context><context>virtual
4826 host</context>
4827 <context>directory</context><context>.htaccess</context>
4828 </contextlist>
4829 <override>FileInfo</override>
4830 <compatibility>Disponible à partir de la version 2.5 du serveur HTTP Apache</compatibility>
4831
4832 <usage>
4833     <p>Lorsqu'elle se situe à l'intérieur d'un fichier
4834     <code>.htaccess</code>, ou d'une section <directive type="section"
4835     module="core">Directory</directive> ou <directive type="section"
4836     module="core">Location</directive>, cette directive force le
4837     traitement de tous les fichiers spécifiés par le <a
4838     href="../handler.html">gestionnaire</a> défini par l'argument
4839     <var>nom gestionnaire</var>. Par exemple, dans le cas d'un
4840     répertoire dont vous voulez interpréter le contenu comme des
4841     fichiers de règles d'images cliquables, sans tenir compte des
4842     extensions, vous pouvez ajouter la ligne suivante dans un fichier
4843     <code>.htaccess</code> de ce répertoire :</p>
4844
4845     <highlight language="config">SetHandler imap-file</highlight>
4846
4847     <p>Autre exemple : si vous voulez que le serveur affiche un
4848     compte-rendu d'état chaque fois qu'une URL du type <code>http://nom
4849     serveur/status</code> est appelée, vous pouvez ajouter ceci dans
4850     <code>httpd.conf</code> :</p>
4851
4852     <highlight language="config">
4853 &lt;Location "/status"&gt;
4854   SetHandler server-status
4855 &lt;/Location&gt;
4856     </highlight>
4857
4858     <p>Vous pouvez aussi utiliser cette directive pour associer un
4859     gestionnaire à des fichiers possèdant une extension de nom de
4860     fichier particulière. Par exemple :</p>
4861
4862     <highlight language="config">
4863 &lt;FilesMatch "\.php$"&gt;
4864     SetHandler application/x-httpd-php
4865 &lt;/FilesMatch&gt;
4866     </highlight>
4867
4868     <p>On peut utiliser des expressions ayant pour valeur des chaînes pour
4869     référencer des variables spécifiques à une requête, y compris les
4870     références arrières vers des expressions rationnelles nommées :</p>
4871
4872     <highlight language="config">
4873 &lt;LocationMatch ^/app/(?&lt;sub&gt;[^/]+)/&gt;
4874      SetHandler "proxy:unix:/var/run/app_%{env:MATCH_sub}.sock|fcgi://localhost:8080"
4875 &lt;/LocationMatch&gt;
4876     </highlight>
4877
4878     <p>Vous pouvez écraser la définition antérieure d'une directive
4879     <directive>SetHandler</directive> en utilisant la valeur
4880     <code>None</code>.</p>
4881
4882     <note><title>Note</title>
4883     <p>Comme <directive>SetHandler</directive> l'emporte sur la
4884     définition des gestionnaires par défaut, le comportement habituel
4885     consistant à traiter les URLs se terminant par un slash (/) comme
4886     des répertoires ou des fichiers index est désactivé.</p></note>
4887 </usage>
4888
4889 <seealso><directive module="mod_mime">AddHandler</directive></seealso>
4890
4891 </directivesynopsis>
4892
4893 <directivesynopsis>
4894 <name>SetInputFilter</name>
4895 <description>Définit les filtres par lesquels vont passer les requêtes
4896 client et les données POST</description>
4897 <syntax>SetInputFilter <var>filtre</var>[;<var>filtre</var>...]</syntax>
4898 <contextlist><context>server config</context><context>virtual
4899 host</context>
4900 <context>directory</context><context>.htaccess</context>
4901 </contextlist>
4902 <override>FileInfo</override>
4903
4904 <usage>
4905     <p>La directive <directive>SetInputFilter</directive> permet de
4906     définir le ou les filtres par lesquels vont passer les requêtes
4907     client et les données POST au moment où le serveur les reçoit. Cette
4908     définition vient en ajout à tout autre filtre défini en
4909     quelqu'endroit que ce soit, y compris via la directive <directive
4910     module="mod_mime">AddInputFilter</directive>.</p>
4911
4912     <p>Si la directive comporte plusieurs filtres, ils doivent être
4913     séparés par des points-virgules, et spécifiés selon l'ordre dans
4914     lequel vous souhaitez les voir agir sur les contenus.</p>
4915 </usage>
4916 <seealso>documentation des <a
4917 href="../filter.html">Filtres</a></seealso>
4918 </directivesynopsis>
4919
4920 <directivesynopsis>
4921 <name>SetOutputFilter</name>
4922 <description>Définit les filtres par lesquels vont passer les réponses
4923 du serveur</description>
4924 <syntax>SetOutputFilter <var>filtre</var>[;<var>filtre</var>...]</syntax>
4925 <contextlist><context>server config</context><context>virtual
4926 host</context>
4927 <context>directory</context><context>.htaccess</context>
4928 </contextlist>
4929 <override>FileInfo</override>
4930
4931 <usage>
4932     <p>La directive <directive>SetOutputFilter</directive> permet de
4933     définir les filtres par lesquels vont passer les réponses du serveur
4934     avant d'être envoyées au client. Cette définition vient en ajout à
4935     tout autre filtre défini en quelqu'endroit que ce soit, y compris
4936     via la directive <directive
4937     module="mod_mime">AddOutputFilter</directive>.</p>
4938
4939     <p>Par exemple, la configuration suivante va traiter tous les
4940     fichiers du répertoire <code>/www/data/</code> comme des inclusions
4941     côté serveur (SSI) :</p>
4942
4943     <highlight language="config">
4944 &lt;Directory "/www/data/"&gt;
4945   SetOutputFilter INCLUDES
4946 &lt;/Directory&gt;
4947     </highlight>
4948
4949     <p>Si la directive comporte plusieurs filtres, ils doivent être
4950     séparés par des points-virgules, et spécifiés selon l'ordre dans
4951     lequel vous souhaitez les voir agir sur les contenus.</p>
4952 </usage>
4953 <seealso><a href="../filter.html">Filters</a> documentation</seealso>
4954 </directivesynopsis>
4955
4956 <directivesynopsis>
4957 <name>TimeOut</name>
4958 <description>Temps pendant lequel le serveur va attendre certains
4959 évènements avant de considérer qu'une requête a échoué</description>
4960 <syntax>TimeOut <var>secondes</var></syntax>
4961 <default>TimeOut 60</default>
4962 <contextlist><context>server config</context><context>virtual
4963 host</context></contextlist>
4964
4965 <usage>
4966     <p>La directive <directive>TimeOut</directive> permet de définir le
4967     temps maximum pendant lequel Apache httpd va attendre des entrées/sorties
4968     selon les circonstances :</p>
4969
4970     <ul>
4971       <li><p>Lors de la lecture de données en provenance du client, le
4972       temps maximum jusqu'à l'arrivée d'un paquet TCP si le tampon est
4973       vide.</p>
4974       <p>Pour les données initiales d'une nouvelle connexion, et tant qu'une
4975       directive <directive module="core">AcceptFilter</directive> n'aura pas
4976       transmis cette nouvelle connexion au serveur, cette directive n'aura aucun
4977       effet.</p>
4978       </li>
4979
4980       <li>Lors de l'écriture de données destinées au client, le temps
4981       maximum jusqu'à l'arrivée de l'accusé-réception d'un paquet si le
4982       tampon d'envoi est plein.</li>
4983
4984       <li>Avec <module>mod_cgi</module> et <module>mod_cgid</module>, le temps d'attente maximum des
4985       sorties d'un script CGI.</li>
4986
4987       <li>Avec <module>mod_ext_filter</module>, le temps d'attente
4988       maximum des sorties d'un processus de filtrage.</li>
4989
4990       <li>Avec <module>mod_proxy</module>, la valeur du délai par défaut
4991       si <directive module="mod_proxy">ProxyTimeout</directive> n'est
4992       pas défini.</li>
4993     </ul>
4994
4995 </usage>
4996 </directivesynopsis>
4997
4998 <directivesynopsis>
4999 <name>TraceEnable</name>
5000 <description>Détermine le comportement des requêtes
5001 <code>TRACE</code></description>
5002 <syntax>TraceEnable <var>[on|off|extended]</var></syntax>
5003 <default>TraceEnable on</default>
5004 <contextlist><context>server config</context><context>virtual host</context></contextlist>
5005
5006 <usage>
5007     <p>Cette directive l'emporte sur le comportement de
5008     <code>TRACE</code> pour le noyau du serveur et
5009     <module>mod_proxy</module>. La définition par défaut
5010     <code>TraceEnable on</code> permet des requêtes <code>TRACE</code>
5011     selon la RFC 2616, qui interdit d'ajouter tout corps à la requête.
5012     La définition <code>TraceEnable off</code> indique au noyau du
5013     serveur et à <module>mod_proxy</module> de retourner un code
5014     d'erreur <code>405</code> (Méthode non autorisée) au client.</p>
5015
5016     <p>En fait, et à des fins de test et de diagnostic seulement, on
5017     peut autoriser l'ajout d'un corps de requête à l'aide de la
5018     définition non standard <code>TraceEnable extended</code>. Le noyau
5019     du serveur (dans le cas d'un serveur d'origine) va limiter la taille
5020     du corps de requête à 64Kb (plus 8Kb pour les en-têtes de
5021     fractionnement si <code>Transfer-Encoding: chunked</code> est
5022     utilisé). Le noyau du serveur va reproduire l'ensemble des en-têtes,
5023     y compris les en-têtes de fractionnement avec le corps de la
5024     réponse. Dans le cas d'un serveur mandataire, la taille du corps de
5025     requête n'est pas limitée à 64Kb.</p>
5026
5027     <note><title>Note</title>
5028     <p>Bien que certains prétendent le contraire, activer la méthode
5029     <code>TRACE</code> ne constitue pas un problème de sécurité dans Apache
5030     httpd. La méthode <code>TRACE</code> est définie par la spécification
5031     HTTP/1.1 et les différentes implémentations sont censées la supporter.</p>
5032     </note>
5033 </usage>
5034 </directivesynopsis>
5035
5036 <directivesynopsis>
5037 <name>UnDefine</name>
5038 <description>Invalide la définition d'une variable</description>
5039 <syntax>UnDefine <var>nom-variable</var></syntax>
5040 <contextlist><context>server config</context>
5041 <context>virtual host</context></contextlist>
5042
5043 <usage>
5044     <p>Annule l'effet d'une directive <directive
5045     module="core">Define</directive> ou d'un argument <code>-D</code> de
5046     <program>httpd</program> en invalidant l'existence de la variable
5047     correspondante.</p>
5048     <p>On peut utiliser cette directive pour inverser l'effet d'une
5049     section <directive module="core" type="section">IfDefine</directive>
5050     sans avoir à modifier les arguments <code>-D</code> dans les scripts
5051     de démarrage.</p>
5052     <p>Si cette directive est définie au sein d'un bloc VirtualHost, les
5053     changements qu'elle induit sont visibles de toute directive
5054     ultérieure, au delà de tout bloc VirtualHost.</p>    
5055 </usage>
5056 </directivesynopsis>
5057
5058 <directivesynopsis>
5059 <name>UseCanonicalName</name>
5060 <description>Définit la manière dont le serveur détermine son propre nom
5061 et son port</description>
5062 <syntax>UseCanonicalName On|Off|DNS</syntax>
5063 <default>UseCanonicalName Off</default>
5064 <contextlist><context>server config</context><context>virtual
5065 host</context>
5066 <context>directory</context></contextlist>
5067
5068 <usage>
5069     <p>Dans de nombreuses situations, Apache httpd doit construire une URL
5070     <em>auto-identifiante</em> -- c'est à dire une URL qui fait
5071     référence au serveur lui-même. Avec <code>UseCanonicalName
5072     On</code>, Apache httpd va utiliser le nom d'hôte et le port spécifiés par
5073     la directive <directive module="core">ServerName</directive> pour
5074     construire le nom canonique du serveur. Ce nom est utilisé dans
5075     toutes les URLs auto-identifiantes, et affecté aux variables
5076     <code>SERVER_NAME</code> et <code>SERVER_PORT</code> dans les
5077     programmes CGI.</p>
5078
5079     <p>Avec <code>UseCanonicalName Off</code>, Apache httpd va construire ses
5080     URLs auto-identifiantes à l'aide du nom d'hôte et du port fournis
5081     par le client, si ce dernier en a fourni un (dans la négative,
5082     Apache utilisera le nom canonique, de la même manière que
5083     ci-dessus). Ces valeurs sont les mêmes que celles qui sont utilisées
5084     pour implémenter les <a
5085     href="../vhosts/name-based.html">serveurs virtuels à base de
5086     nom</a>, et sont disponibles avec les mêmes clients. De même, les
5087     variables CGI <code>SERVER_NAME</code> et <code>SERVER_PORT</code>
5088     seront affectées des valeurs fournies par le client.</p>
5089
5090     <p>Cette directive peut s'avérer utile, par exemple, sur un serveur
5091     intranet auquel les utilisateurs se connectent en utilisant des noms
5092     courts tels que <code>www</code>. Si les utilisateurs tapent un nom
5093     court suivi d'une URL qui fait référence à un répertoire, comme
5094     <code>http://www/splat</code>, <em>sans le slash terminal</em>, vous
5095     remarquerez qu'Apache httpd va les rediriger vers
5096     <code>http://www.example.com/splat/</code>. Si vous avez activé
5097     l'authentification, ceci va obliger l'utilisateur à s'authentifier
5098     deux fois (une première fois pour <code>www</code> et une seconde
5099     fois pour <code>www.example.com</code> -- voir <a
5100     href="http://wiki.apache.org/httpd/FAQ#Why_does_Apache_ask_for_my_password_twice_before_serving_a_file.3F">la
5101     foire aux questions sur ce sujet pour plus d'informations</a>).
5102     Par contre, si <directive>UseCanonicalName</directive> est définie à
5103     <code>Off</code>, Apache httpd redirigera l'utilisateur vers
5104     <code>http://www/splat/</code>.</p>
5105
5106     <p>Pour l'hébergement virtuel en masse à base d'adresse IP, on
5107     utilise une troisième option, <code>UseCanonicalName
5108     DNS</code>, pour supporter les clients anciens qui ne
5109     fournissent pas d'en-tête <code>Host:</code>. Apache httpd effectue alors
5110     une recherche DNS inverse sur l'adresse IP du serveur auquel le
5111     client s'est connecté afin de construire ses URLs
5112     auto-identifiantes.</p>
5113
5114     <note type="warning"><title>Avertissement</title>
5115     <p>Les programmes CGI risquent d'être perturbés par cette option
5116     s'ils tiennent compte de la variable <code>SERVER_NAME</code>. Le
5117     client est pratiquement libre de fournir la valeur qu'il veut comme
5118     nom d'hôte. Mais si le programme CGI n'utilise
5119     <code>SERVER_NAME</code> que pour construire des URLs
5120     auto-identifiantes, il ne devrait pas y avoir de problème.</p>
5121     </note>
5122 </usage>
5123 <seealso><directive module="core">UseCanonicalPhysicalPort</directive></seealso>
5124 <seealso><directive module="core">ServerName</directive></seealso>
5125 <seealso><directive module="mpm_common">Listen</directive></seealso>
5126 </directivesynopsis>
5127
5128 <directivesynopsis>
5129 <name>UseCanonicalPhysicalPort</name>
5130 <description>Définit la manière dont le serveur
5131 détermine son propre port</description>
5132 <syntax>UseCanonicalPhysicalPort On|Off</syntax>
5133 <default>UseCanonicalPhysicalPort Off</default>
5134 <contextlist><context>server config</context><context>virtual
5135 host</context>
5136 <context>directory</context></contextlist>
5137
5138 <usage>
5139     <p>Dans de nombreuses situations, Apache httpd doit construire une URL
5140     <em>auto-identifiante</em> -- c'est à dire une URL qui fait
5141     référence au serveur lui-même. Avec <code>UseCanonicalPhysicalPort
5142     On</code>, Apache httpd va fournir le numéro de port physique réel utilisé
5143     par la requête en tant que port potentiel, pour construire le port
5144     canonique afin que le serveur puisse alimenter la directive
5145     <directive module="core">UseCanonicalName</directive>. Avec
5146     <code>UseCanonicalPhysicalPort Off</code>, Apache httpd n'utilisera pas le
5147     numéro de port physique réel, mais au contraire se référera aux
5148     informations de configuration pour construire un numéro de port
5149     valide.</p>
5150
5151     <note><title>Note</title>
5152     <p>L'ordre dans lequel s'effectue la recherche quand on utilise le
5153     port physique est le suivant :</p>
5154      <dl>
5155      <dt><code>UseCanonicalName On</code></dt>
5156      <dd>
5157      <ol>
5158       <li>Port indiqué dans <directive module="core">Servername</directive></li>
5159       <li>Port physique</li>
5160       <li>Port par défaut</li>
5161      </ol>
5162      </dd>
5163      <dt><code>UseCanonicalName Off | DNS</code></dt>
5164      <dd>
5165      <ol>
5166       <li>Port spécifié dans l'en-tête <code>Host:</code></li>
5167       <li>Port physique</li>
5168       <li>Port spécifié par <directive module="core">Servername</directive></li>
5169       <li>Port par défaut</li>
5170      </ol>
5171      </dd>
5172      </dl>
5173
5174     <p>Avec <code>UseCanonicalPhysicalPort Off</code>, on reprend
5175     l'ordre ci-dessus en supprimant "Port physique".</p>
5176     </note>
5177
5178 </usage>
5179 <seealso><directive module="core">UseCanonicalName</directive></seealso>
5180 <seealso><directive module="core">ServerName</directive></seealso>
5181 <seealso><directive module="mpm_common">Listen</directive></seealso>
5182 </directivesynopsis>
5183
5184 <directivesynopsis type="section">
5185 <name>VirtualHost</name>
5186 <description>Contient des directives qui ne s'appliquent qu'à un nom
5187 d'hôte spécifique ou à une adresse IP</description>
5188 <syntax>&lt;VirtualHost
5189     <var>adresse IP</var>[:<var>port</var>] [<var>adresse
5190     IP</var>[:<var>port</var>]] ...&gt; ...
5191     &lt;/VirtualHost&gt;</syntax>
5192 <contextlist><context>server config</context></contextlist>
5193
5194 <usage>
5195     <p>Les balises <directive type="section">VirtualHost</directive> et
5196     <code>&lt;/VirtualHost&gt;</code> permettent de rassembler un groupe
5197     de directives qui ne s'appliquent qu'à un serveur virtuel
5198     particulier. Toute directive autorisée dans un contexte de serveur
5199     virtuel peut être utilisée. Lorsque le serveur reçoit un requête
5200     pour un document hébergé par un serveur virtuel particulier, il
5201     applique les directives de configuration rassemblées dans la section
5202     <directive type="section">VirtualHost</directive>. <var>adresse
5203     IP</var> peut être une des entités suivantes, éventuellement suivies
5204     d'un caractère ':' et d'un numéro de port (ou *) :</p>
5205
5206     <ul>
5207       <li>L'adresse IP du serveur virtuel ;</li>
5208
5209       <li>Un nom de domaine entièrement qualifié correspondant à
5210       l'adresse IP du serveur virtuel (non recommandé) ;</li>
5211
5212       <li>Le caractère <code>*</code>, qui agit comme un
5213       caractère générique, et correspond à toute adresse IP.</li>
5214
5215       <li>La chaîne <code>_default_</code>, dont la signification est
5216       identique à celle du caractère <code>*</code></li>
5217
5218     </ul>
5219
5220     <highlight language="config">
5221 &lt;VirtualHost 10.1.2.3:80&gt;
5222   ServerAdmin webmaster@host.example.com
5223   DocumentRoot "/www/docs/host.example.com"
5224   ServerName host.example.com
5225   ErrorLog "logs/host.example.com-error_log"
5226   TransferLog "logs/host.example.com-access_log"
5227 &lt;/VirtualHost&gt;
5228     </highlight>
5229
5230
5231     <p>Les adresses IPv6 doivent être entourées de crochets car dans le
5232     cas contraire, un éventuel port optionnel ne pourrait pas être
5233     déterminé. Voici un exemple de serveur virtuel avec adresse IPv6
5234     :</p>
5235
5236     <highlight language="config">
5237 &lt;VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80&gt;
5238   ServerAdmin webmaster@host.example.com
5239   DocumentRoot "/www/docs/host.example.com"
5240   ServerName host.example.com
5241   ErrorLog "logs/host.example.com-error_log"
5242   TransferLog "logs/host.example.com-access_log"
5243 &lt;/VirtualHost&gt;
5244     </highlight>
5245
5246     <p>Chaque serveur virtuel doit correspondre à une adresse IP, un
5247     port ou un nom d'hôte spécifique ; dans le premier cas, le serveur
5248     doit être configuré pour recevoir les paquets IP de plusieurs
5249     adresses (si le serveur n'a qu'une interface réseau, on peut
5250     utiliser à cet effet la commande <code>ifconfig alias</code> -- si
5251     votre système d'exploitation le permet).</p>
5252
5253     <note><title>Note</title>
5254     <p>L'utilisation de la directive <directive
5255     type="section">VirtualHost</directive> n'affecte en rien les
5256     adresses IP sur lesquelles Apache httpd est en écoute. Vous devez vous
5257     assurer que les adresses des serveurs virtuels sont bien incluses
5258     dans la liste des adresses précisées par la directive <directive
5259     module="mpm_common">Listen</directive>.</p>
5260     </note>
5261     
5262     <p>Tout bloc <directive
5263     type="section">VirtualHost</directive> doit comporter une directive
5264     <directive module="core">ServerName</directive>. Dans le cas
5265     contraire, le serveur virtuel héritera de la valeur de la directive
5266     <directive module="core">ServerName</directive> issue de la
5267     configuration du serveur principal.</p>
5268
5269     <p>A l'arrivée d'une requête, le serveur tente de la
5270     faire prendre en compte par la section <directive
5271     type="section">VirtualHost</directive> qui correspond le mieux en ne
5272     se basant que sur la paire adresse IP/port. Les chaînes sans
5273     caractères génériques l'emportent sur celles qui en contiennent. Si
5274     aucune correspondance du point de vue de l'adresse IP/port n'est
5275     trouvée, c'est la configuration du serveur "principal" qui sera
5276     utilisée.</p>
5277     
5278     <p>Si plusieurs serveurs virtuels correspondent du point de vue de
5279     l'adresse IP/port, le serveur sélectionne celui qui correspond le
5280     mieux du point de vue du nom d'hôte de la requête. Si aucune
5281     correspondance du point de vue du nom d'hôte n'est trouvée, c'est le
5282     premier serveur virtuel dont l'adresse IP/port correspond qui sera
5283     utilisé. Par voie de conséquence, le premier serveur virtuel
5284     comportant une certaine paire adresse IP/port est le serveur virtuel
5285     par défaut pour cette paire adresse IP/port.</p>
5286
5287     <note type="warning"><title>Sécurité</title>
5288     <p>Voir le document sur les <a
5289     href="../misc/security_tips.html">conseils à propos de sécurité</a>
5290     pour une description détaillée des raisons pour lesquelles la
5291     sécurité de votre serveur pourrait être compromise, si le répertoire
5292     contenant les fichiers journaux est inscriptible par tout autre
5293     utilisateur que celui qui démarre le serveur.</p>
5294     </note>
5295 </usage>
5296 <seealso><a href="../vhosts/">Documentation des serveurs virtuels
5297 du serveur HTTP Apache</a></seealso>
5298 <seealso><a href="../dns-caveats.html">Problèmes concernant le DNS et
5299 le serveur HTTP Apache</a></seealso>
5300 <seealso><a href="../bind.html">Définition des adresses et ports
5301 qu'utilise le serveur HTTP Apache</a></seealso>
5302 <seealso><a href="../sections.html">Comment fonctionnent les sections
5303 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
5304 explication de la manière dont ces différentes sections se combinent
5305 entre elles à la réception d'une requête</seealso>
5306 </directivesynopsis>
5307
5308 <directivesynopsis>
5309 <name>RegisterHttpMethod</name>
5310 <description>Enregistrement de méthodes HTTP non standards</description>
5311 <syntax>RegisterHttpMethod <var>méthode</var> [<var>méthode</var> [...]]</syntax>
5312 <contextlist><context>server config</context></contextlist>
5313
5314 <usage>
5315 <p>Normalement, les méthodes HTTP non conformes aux RFCs correspondantes
5316 sont rejetées au cours du traitement de la requête par HTTPD. Pour
5317 éviter ceci, les modules peuvent enregistrer les méthodes HTTP non
5318 standards qu'ils supportent. La directive
5319 <directive>RegisterHttpMethod</directive> permet d'enregistrer de telles
5320 méthodes manuellement. Ceci peut s'avérer utile si de telle méthodes
5321 doivent être utilisées dans un traitement externe, comme un script CGI.</p>
5322 </usage>
5323 </directivesynopsis>
5324
5325 <directivesynopsis>
5326 <name>Warning</name>
5327 <description>Message d'avertissement personnalisable en provenance de
5328 l'interprétation du fichier de configuration</description>
5329 <syntax>Warning <var>message</var></syntax>
5330 <contextlist><context>server config</context><context>virtual host</context>
5331 <context>directory</context><context>.htaccess</context>
5332 </contextlist>
5333 <compatibility>Disponible à partir de la version 2.5 du serveur HTTP
5334 Apache.</compatibility>
5335
5336 <usage>
5337     <p>Cette directive permet de signaler la détection d'un problème de
5338     configuration en générant un message d'avertissement
5339     personnalisable. L'interprétation du fichier de configuration n'est
5340     pas interrompue. Un exemple typique d'utilisation est la
5341     vérification de la définition de certaines options définies par
5342     l'utilisateur, et l'envoi d'un avertissement éventuel.</p>
5343
5344     <highlight language="config">
5345 # Exemple
5346 # signale que ReverseProxy n'est pas défini
5347 &lt;IfDefine !ReverseProxy&gt;
5348   Warning "le mandataire inverse n'a pas été spécifié, veuillez corriger
5349   si nécessaire"
5350 &lt;/IfDefine&gt;
5351
5352 &lt;IfDefine ReverseProxy&gt;
5353   # définition de la configuration personnalisée du mandataire
5354 &lt;/IfDefine&gt;
5355     </highlight>
5356
5357 </usage>
5358 </directivesynopsis>
5359
5360 <directivesynopsis>
5361 <name>MergeTrailers</name>
5362 <description>Détermine si les données supplémentaires (trailers) sont
5363 fusionnées avec les en-têtes</description>
5364 <syntax>MergeTrailers [on|off]</syntax>
5365 <default>MergeTrailers off</default>
5366 <contextlist><context>server config</context><context>virtual host</context></contextlist>
5367 <compatibility>Disponible à partir de la version 2.4.11 du serveur HTTP
5368 Apache</compatibility>
5369
5370 <usage>
5371     <p>Cette directive permet de contrôler la fusion des données HTTP
5372     supplémentaires (trailers) avec la représentation interne des
5373     en-têtes. Cette fusion intervient lorsque le corps de la requête a
5374     été entièrement reçu, bien longtemps après que la majeure partie du
5375     traitement des en-têtes ait une chance de pouvoir examiner ou
5376     modifier les en-têtes de la requête.</p>
5377     <p>Cette option a été introduite dans un souci de compatibilité avec
5378     les versions antérieures à 2.4.11, où les données supplémentaires
5379     étaient systématiquement fusionnées avec les en-têtes de la requête.</p>
5380 </usage>
5381 </directivesynopsis>
5382
5383 <directivesynopsis>
5384 <name>QualifyRedirectURL</name>
5385 <description>Vérifie si la variable d'environnement REDIRECT_URL est
5386 pleinement qualifiée</description>
5387 <syntax>QualifyRedirectURL ON|OFF</syntax>
5388 <default>QualifyRedirectURL OFF</default>
5389 <contextlist><context>server config</context><context>virtual host</context>
5390 <context>directory</context>
5391 </contextlist>
5392 <override>FileInfo</override>
5393 <compatibility>Directive supportée à partir de la version 2.4.18 du
5394 serveur HTTP Apache. Jusqu'à la version 2.4.17, le serveur se comportait
5395 comme si la directive QualifyRedirectURL était définie à ON.</compatibility>
5396
5397 <usage>
5398     <p>Cette directive permet de s'assurer que le serveur vérifiera que
5399     la variable d'environnement REDIRECT_URL est bien pleinement
5400     qualifiée. Par défaut, cette variable contient l'URL textuellement
5401     demandée par le client, par exemple "/index.html". Avec <directive
5402     module="core">QualifyRedirectURL ON</directive>, la même requête
5403     affectera à la variable REDIRECT_URL une valeur du style
5404     "http://www.example.com/index.html".</p>
5405     <p>Même si cette directive n'est pas définie, lorsqu'une requête est
5406     soumise avec une URL pleinement qualifiée, la variable REDIRECT_URL
5407     contiendra quand-même une URL pleinement qualifiée.
5408     </p>
5409 </usage>
5410 </directivesynopsis>
5411
5412
5413 </modulesynopsis>