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