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