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