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