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