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