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