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