2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision: 1302855:1330850 (outdated) -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
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
16 http://www.apache.org/licenses/LICENSE-2.0
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.
25 <modulesynopsis metafile="core.xml.meta">
28 <description>Fonctionnalités de base du serveur HTTP Apache toujours
29 disponibles</description>
33 <name>AcceptFilter</name>
34 <description>Permet d'optimiser la configuration d'une socket pour
35 l'écoute d'un protocole</description>
36 <syntax>AcceptFilter <var>protocole</var> <var>filtre
37 d'acceptation</var></syntax>
38 <contextlist><context>server config</context></contextlist>
39 <compatibility>Disponible depuis la version 2.3.3 sous Windows et 2.1.5
40 sur les autres plates-formes.</compatibility>
43 <p>Cette directive permet d'effectuer une optimisation de la socket
44 d'écoute d'un type de protocole en fonction du système
45 d'exploitation. Le but premier est de faire en sorte que le noyau
46 n'envoie pas de socket au processus du serveur jusqu'à ce que
47 des données soient reçues, ou qu'une requête HTTP complète soit mise
48 en tampon. Seuls les <a
49 href="http://www.freebsd.org/cgi/man.cgi?query=accept_filter&
50 sektion=9">Filtres d'acceptation de FreeBSD</a>, le filtre plus
51 primitif <code>TCP_DEFER_ACCEPT</code> sous Linux, et la version
52 optimisée d'AcceptEx() de Windows sont actuellement supportés.</p>
54 <p>L'utilisation de l'argument <code>none</code> va désactiver tout
55 filtre d'acceptation pour ce protocole. Ceci s'avère utile pour les
56 protocoles qui nécessitent l'envoi de données par le serveur en
57 premier, comme <code>ftp:</code> ou <code>nntp</code>:</p>
58 <example>AcceptFilter nntp none</example>
60 <p>Les noms de protocoles par défaut sont <code>https</code> pour le
61 port 443 et <code>http</code> pour tous les autres ports. Pour
62 spécifier un autre protocole à utiliser avec un port en écoute,
63 ajoutez l'argument <var>protocol</var> à la directive <directive
64 module="mpm_common">Listen</directive>.</p>
66 <p>Sous FreeBSD, les valeurs par défaut sont :</p>
68 AcceptFilter http httpready <br/>
69 AcceptFilter https dataready
72 <p>Le filtre d'acceptation <code>httpready</code> met en tampon des
73 requêtes HTTP entières au niveau du noyau. Quand une requête
74 entière a été reçue, le noyau l'envoie au serveur. Voir la page de
76 href="http://www.freebsd.org/cgi/man.cgi?query=accf_http&
77 sektion=9">accf_http(9)</a> pour plus de détails. Comme les requêtes
78 HTTPS sont chiffrées, celles-ci n'autorisent que le filtre <a
79 href="http://www.freebsd.org/cgi/man.cgi?query=accf_data&
80 sektion=9">accf_data(9)</a>.</p>
82 <p>Sous Linux, les valeurs par défaut sont :</p>
84 AcceptFilter http data <br/>
85 AcceptFilter https data
88 <p>Le filtre <code>TCP_DEFER_ACCEPT</code> de Linux ne supporte pas
89 la mise en tampon des requê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étails, voir la page de
93 href="http://homepages.cwi.nl/~aeb/linux/man2html/man7/
94 tcp.7.html">tcp(7)</a>.</p>
96 <p>Sous Windows, les valeurs par défaut sont :</p>
98 AcceptFilter http data <br/>
99 AcceptFilter https data
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éseau entre
106 les connexions. <code>data</code> attend jusqu'à ce que les données
107 aient été transmises comme décrit plus haut, et le tampon de données
108 initiales ainsi que les adresses réseau finales sont tous extraits
109 grâce à une seule invocation d'AcceptEx(). <code>connect</code>
110 utilise l'API AcceptEx(), extrait aussi les adresses réseau finales,
111 mais à l'instar de <code>none</code>, la valeur <code>connect</code>
112 n'attend pas la transmission des données initiales.</p>
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ère utile pour les interfaces réseau dont le pilote est
117 défectueux, ainsi que pour certains fournisseurs de réseau comme les
118 pilotes vpn, ou les filtres anti-spam, anti-virus ou
122 <seealso><directive>Protocol</directive></seealso>
126 <name>AcceptPathInfo</name>
127 <description>Les ressources acceptent des informations sous forme d'un
128 nom de chemin en fin de requête.</description>
129 <syntax>AcceptPathInfo On|Off|Default</syntax>
130 <default>AcceptPathInfo Default</default>
131 <contextlist><context>server config</context>
132 <context>virtual host</context><context>directory</context>
133 <context>.htaccess</context></contextlist>
134 <override>FileInfo</override>
135 <compatibility>Disponible dans Apache httpd version 2.0.30 et
136 supérieures</compatibility>
140 <p>Cette directive permet de définir si les requêtes contenant des
141 informations sous forme d'un nom de chemin suivant le nom d'un
142 fichier réel (ou un fichier qui n'existe pas dans un répertoire qui
143 existe) doivent être acceptées ou rejetées. Les scripts peuvent
144 accéder à cette information via la variable d'environnement
145 <code>PATH_INFO</code>.</p>
147 <p>Supposons par exemple que <code>/test/</code> pointe vers un
148 répertoire qui ne contient que le fichier <code>here.html</code>.
149 Les requêtes pour <code>/test/here.html/more</code> et
150 <code>/test/nothere.html/more</code> vont affecter la valeur
151 <code>/more</code> à la variable d'environnement
152 <code>PATH_INFO</code>.</p>
154 <p>L'argument de la directive <directive>AcceptPathInfo</directive>
155 possède trois valeurs possibles :</p>
157 <dt><code>Off</code></dt><dd>Une requête ne sera acceptée que si
158 elle correspond à un chemin qui existe. Par conséquent, une requête
159 contenant une information de chemin après le nom de fichier réel
160 comme <code>/test/here.html/more</code> dans l'exemple ci-dessus
161 renverra une erreur "404 NOT FOUND".</dd>
163 <dt><code>On</code></dt><dd>Une requête sera acceptée si la partie
164 principale du chemin correspond à un fichier existant. Dans
165 l'exemple ci-dessus <code>/test/here.html/more</code>, la requête
166 sera acceptée si <code>/test/here.html</code> correspond à un nom de
169 <dt><code>Default</code></dt><dd>Le traitement des requêtes est
170 déterminé par le <a
171 href="../handler.html">gestionnaire</a> responsable de la requête.
172 Le gestionnaire de base pour les fichiers normaux rejette par défaut
173 les requêtes avec <code>PATH_INFO</code>. Les gestionnaires qui
174 servent des scripts, comme<a
175 href="mod_cgi.html">cgi-script</a> et <a
176 href="mod_isapi.html">isapi-handler</a>, acceptent en général par
177 défaut les requêtes avec <code>PATH_INFO</code>.</dd>
180 <p>Le but premier de la directive <code>AcceptPathInfo</code> est de
181 vous permettre de remplacer le choix du gestionnaire d'accepter ou
182 de rejeter <code>PATH_INFO</code>. Ce remplacement est nécessaire
183 par exemple, lorsque vous utilisez un <a
184 href="../filter.html">filtre</a>, comme <a
185 href="mod_include.html">INCLUDES</a>, pour générer un contenu basé
186 sur <code>PATH_INFO</code>. Le gestionnaire de base va en général
187 rejeter la requête, et vous pouvez utiliser la configuration
188 suivante pour utiliser un tel script :</p>
191 <Files "mes-chemins.shtml"><br />
193 Options +Includes<br />
194 SetOutputFilter INCLUDES<br />
195 AcceptPathInfo On<br />
204 <name>AccessFileName</name>
205 <description>Nom du fichier de configuration distribué</description>
206 <syntax>AccessFileName <var>nom-du-fichier</var>
207 [<var>nom-du-fichier</var>] ...</syntax>
208 <default>AccessFileName .htaccess</default>
209 <contextlist><context>server config</context><context>virtual
214 <p>Au cours du traitement d'une requête, le serveur recherche le
215 premier fichier de configuration existant à partir de la liste
216 de noms dans chaque répertoire composant le chemin du document, à
217 partir du moment où les fichiers de configuration distribués sont <a
218 href="#allowoverride">activés pour ce répertoire</a>. Par exemple
225 <p>avant de renvoyer le document
226 <code>/usr/local/web/index.html</code>, le serveur va rechercher les
227 fichiers <code>/.acl</code>, <code>/usr/.acl</code>,
228 <code>/usr/local/.acl</code> et <code>/usr/local/web/.acl</code>
229 pour y lire d'éventuelles directives, à moins quelles n'aient été
230 désactivées avec</p>
233 <Directory /><br />
235 AllowOverride None<br />
240 <seealso><directive module="core">AllowOverride</directive></seealso>
241 <seealso><a href="../configuring.html">Fichiers de configuration</a></seealso>
242 <seealso><a href="../howto/htaccess.html">Fichiers .htaccess</a></seealso>
246 <name>AddDefaultCharset</name>
247 <description>Paramètre jeu de caractères par défaut à ajouter quand le
248 type de contenu d'une réponse est <code>text/plain</code> ou
249 <code>text/html</code></description>
250 <syntax>AddDefaultCharset On|Off|<var>jeu de caractères</var></syntax>
251 <default>AddDefaultCharset Off</default>
252 <contextlist><context>server config</context>
253 <context>virtual host</context><context>directory</context>
254 <context>.htaccess</context></contextlist>
255 <override>FileInfo</override>
258 <p>Cette directive spécifie une valeur par défaut pour le paramètre
259 jeu de caractères du type de média (le nom d'un codage de
260 caractères) à ajouter à une réponse, si et seulement si le type de
261 contenu de la réponse est soit <code>text/plain</code>, soit
262 <code>text/html</code>. Ceci va remplacer
263 tout jeu de caractères spécifié dans le corps de la réponse via un
264 élément <code>META</code>, bien que cet effet dépende en fait
265 souvent de la configuration du client de l'utilisateur. La
266 définition de <code>AddDefaultCharset Off</code> désactive cette
267 fonctionnalité. <code>AddDefaultCharset On</code> ajoute un jeu de
268 caractères par défaut de <code>iso-8859-1</code>. Toute autre valeur
269 peut être définie via le paramètre <var>jeu de caractères</var>, qui
270 doit appartenir à la liste des <a
271 href="http://www.iana.org/assignments/character-sets">valeurs de
272 jeux de caractères enregistrés par l'IANA</a> à utiliser dans les
273 types de média Internet (types MIME).
277 AddDefaultCharset utf-8
280 <p>La directive <directive>AddDefaultCharset</directive> ne doit
281 être utilisée que lorsque toutes les ressources textes auxquelles
282 elle s'applique possèdent le jeu de caractère spécifié, et qu'il est
283 trop contraignant de définir leur jeu de caractères
284 individuellement. Un exemple de ce type est l'ajout du paramètre jeu
285 de caractères aux ressources comportant un contenu généré, comme les
286 scripts CGI hérités qui peuvent être vulnérables à des attaques de
287 type cross-site scripting à cause des données utilisateurs incluses
288 dans leur sortie. Notez cependant qu'une meilleur solution consiste
289 à corriger (ou supprimer) ces scripts, car la définition d'un jeu de
290 caractères par défaut ne protège pas les utilisateurs qui ont activé
291 la fonctionnalité "Détection automatique de l'encodage des
292 caractères" dans leur navigateur.</p>
294 <seealso><directive module="mod_mime">AddCharset</directive></seealso>
298 <name>AllowEncodedSlashes</name>
299 <description>Détermine si les séparateurs de chemin encodés sont
300 autorisés à transiter dans les URLs tels quels</description>
301 <syntax>AllowEncodedSlashes On|Off|NoDecode</syntax>
302 <default>AllowEncodedSlashes Off</default>
303 <contextlist><context>server config</context><context>virtual
306 <compatibility>Disponible dans Apache httpd version 2.0.46 et
307 supérieures. L'option NoDecode est disponible depuis la version
308 2.3.12.</compatibility>
311 <p>La directive <directive>AllowEncodedSlashes</directive> permet
312 l'utilisation des URLs contenant des séparateurs de chemin
313 encodés dans la partie chemin
314 (<code>%2F</code> pour <code>/</code> et même <code>%5C</code> pour
315 <code>\</code> sur les systèmes concernés).</p>
317 <p>Avec la valeur par défaut, <code>Off</code>, de telles URLs sont
318 refusées et provoquent le renvoi d'une erreur 404 (Not found).</p>
320 <p>Avec la valeur <code>On</code>, ces URLs sont acceptées, et les
321 slashes encodés sont décodés comme tout autre caractère codé.</p>
323 <p>Avec la valeur <code>NoDecode</code>, ces URLs sont acceptées,
324 mais les slashes codés ne sont pas décodés et laissés dans leur état
327 <p>Définir <directive>AllowEncodedSlashes</directive> à
328 <code>On</code> est surtout utile en association avec
329 <code>PATH_INFO</code>.</p>
331 <note><title>Note</title>
332 <p>Si le codage des slashes dans la partie chemin est nécessaire,
333 l'utilisation de l'option <code>NoDecode</code> est fortement
334 recommandée par mesure de sécurité. Permettre le décodage des
335 slashes pourrait éventuellement induire l'autorisation de chemins
339 <seealso><directive module="core">AcceptPathInfo</directive></seealso>
343 <name>AllowOverride</name>
344 <description>Types de directives autorisées dans les fichiers
345 <code>.htaccess</code></description>
346 <syntax>AllowOverride All|None|<var>type directive</var>
347 [<var>type directive</var>] ...</syntax>
348 <default>AllowOverride None à partir de la version 2.3.9, AllowOverride
349 All pour les versions antérieures</default>
350 <contextlist><context>directory</context></contextlist>
353 <p>Lorsque le serveur trouve un fichier <code>.htaccess</code> (dont
354 le nom est défini par la directive <directive
355 module="core">AccessFileName</directive>), il doit savoir lesquelles
356 des directives placées dans ce fichier sont autorisées à modifier la
357 configuration préexistante.</p>
359 <note><title>Valable seulement dans les sections
360 <Directory></title>
361 La directive <directive>AllowOverride</directive> ne peut être
362 utilisée que dans les sections <directive type="section"
363 module="core">Directory</directive> définies sans expressions
364 rationnelles, et non dans les sections <directive
365 type="section" module="core">Location</directive>, <directive
366 module="core" type="section">DirectoryMatch</directive> ou
367 <directive type="section" module="core">Files</directive>.
370 <p>Lorsque cette directive et la directive <directive
371 module="core">AllowOverrideList</directive> sont définies à <code>None</code>, les
372 fichiers <a href="#accessfilename">.htaccess</a> sont totalement
373 ignorés. Dans ce cas, le serveur n'essaiera même pas de lire les
374 fichiers <code>.htaccess</code> du système de fichiers.</p>
376 <p>Lorsque cette directive est définie à <code>All</code>, toute
377 directive valable dans le <a
378 href="directive-dict.html#Context">Contexte</a> .htaccess sera
379 autorisée dans les fichiers <code>.htaccess</code>.</p>
381 <p>L'argument <var>type directive</var> peut contenir les
382 groupements de directives suivants :</p>
389 Permet l'utilisation des directives d'autorisation (<directive
390 module="mod_authz_dbm">AuthDBMGroupFile</directive>,
391 <directive module="mod_authn_dbm">AuthDBMUserFile</directive>,
392 <directive module="mod_authz_groupfile">AuthGroupFile</directive>,
393 <directive module="mod_authn_core">AuthName</directive>,
394 <directive module="mod_authn_core">AuthType</directive>, <directive
395 module="mod_authn_file">AuthUserFile</directive>, <directive
396 module="mod_authz_core">Require</directive>, <em>etc...</em>).</dd>
401 Permet l'utilisation des directives qui contrôlent les types de
402 documents (directives <directive
403 module="core">ErrorDocument</directive>, <directive
404 module="core">ForceType</directive>, <directive
405 module="mod_negotiation">LanguagePriority</directive>,
406 <directive module="core">SetHandler</directive>, <directive
407 module="core">SetInputFilter</directive>, <directive
408 module="core">SetOutputFilter</directive>, et directives du
409 module <module>mod_mime</module> Add* et Remove*), des metadonnées
410 des documents (<directive
411 module="mod_headers">Header</directive>, <directive
412 module="mod_headers">RequestHeader</directive>, <directive
413 module="mod_setenvif">SetEnvIf</directive>, <directive
414 module="mod_setenvif">SetEnvIfNoCase</directive>, <directive
415 module="mod_setenvif">BrowserMatch</directive>, <directive
416 module="mod_usertrack">CookieExpires</directive>, <directive
417 module="mod_usertrack">CookieDomain</directive>, <directive
418 module="mod_usertrack">CookieStyle</directive>, <directive
419 module="mod_usertrack">CookieTracking</directive>, <directive
420 module="mod_usertrack">CookieName</directive>), des directives du
421 module <module>mod_rewrite</module> <directive
422 module="mod_rewrite">RewriteEngine</directive>, <directive
423 module="mod_rewrite">RewriteOptions</directive>, <directive
424 module="mod_rewrite">RewriteBase</directive>, <directive
425 module="mod_rewrite">RewriteCond</directive>, <directive
426 module="mod_rewrite">RewriteRule</directive>) et de la directive
427 <directive module="mod_actions">Action</directive> du module
428 <module>mod_actions</module>.
434 Permet l'utilisation des directives qui contrôlent l'indexation
435 des répertoires (<directive
436 module="mod_autoindex">AddDescription</directive>,
437 <directive module="mod_autoindex">AddIcon</directive>, <directive
438 module="mod_autoindex">AddIconByEncoding</directive>,
439 <directive module="mod_autoindex">AddIconByType</directive>,
440 <directive module="mod_autoindex">DefaultIcon</directive>, <directive
441 module="mod_dir">DirectoryIndex</directive>, <a
442 href="mod_autoindex.html#indexoptions.fancyindexing"><code>FancyIndexing</code></a>,
444 module="mod_autoindex">HeaderName</directive>, <directive
445 module="mod_autoindex">IndexIgnore</directive>, <directive
446 module="mod_autoindex">IndexOptions</directive>, <directive
447 module="mod_autoindex">ReadmeName</directive>,
448 <em>etc...</em>).</dd>
453 Permet l'utilisation des directives contrôlant l'accès au serveur
455 module="mod_access_compat">Allow</directive>, <directive
456 module="mod_access_compat">Deny</directive> et <directive
457 module="mod_access_compat">Order</directive>).</dd>
459 <dt>Nonfatal=[Override|Unknown|All]</dt>
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ées ou
465 non reconnues seront ignorées et un avertissement enregistré dans
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ées les erreurs de frappe
472 et les directives implémentées par un module non chargé.</li>
473 <li><strong>Nonfatal=All</strong> rend toutes les directives
474 précédentes non fatales.</li>
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écurité</title>
479 Les erreurs non fatales peuvent être à l'origine de problèmes
480 de sécurité pour les utilisateurs de fichiers .htaccess. Par
481 exemple, si AllowOverride interdit AuthConfig, toute
482 configuration utilisateur destinée à restreindre l'accès à un
483 site ne sera pas prise en compte.
487 <dt>Options[=<var>Option</var>,...]</dt>
490 Permet l'utilisation des directives contrôlant les fonctionnalités
491 spécifiques d'un répertoire (<directive
492 module="core">Options</directive> et <directive
493 module="mod_include">XBitHack</directive>). "Options" doit être
494 suivi d'un signe "égal", puis d'une liste d'options séparées par des
495 virgules (pas d'espaces) ; ces options doivent être définies à
496 l'aide de la commande <directive
497 module="core">Options</directive>.
499 <note><title>Désactivation implicite des options</title>
500 <p>Bien que la liste des options disponibles dans les fichiers
501 .htaccess puisse être limitée par cette directive, tant qu'un
502 directive <directive module="core">Options</directive> est
503 autorisée, toute autre option héritée peut être désactivée en
504 utilisant la syntaxe non-relative. En d'autres termes, ce
505 mécanisme ne peut pas forcer une option spécifique à rester
506 <em>activée</em> tout en permettant à toute autre option d'être
516 AllowOverride AuthConfig Indexes
519 <p>Dans l'exemple ci-dessus, toutes les directives qui ne font
520 partie ni du groupe <code>AuthConfig</code>, ni du groupe
521 <code>Indexes</code>, provoquent une erreur "internal
524 <note><p>Pour des raisons de sécurité et de performance, ne
525 définissez pas <code>AllowOverride</code> à autre chose que
526 <code>None</code> dans votre bloc <code><Directory /></code>.
527 Recherchez plutôt (ou créez) le bloc <code><Directory></code>
528 qui se réfère au répertoire où vous allez précisément placer un
529 fichier <code>.htaccess</code>.</p>
532 <seealso><directive module="core">AccessFileName</directive></seealso>
533 <seealso><directive module="core">AllowOverrideList</directive></seealso>
534 <seealso><a href="../configuring.html">Fichiers de configuration</a></seealso>
535 <seealso><a href="../howto/htaccess.html">Fichiers .htaccess</a></seealso>
539 <name>AllowOverrideList</name>
540 <description>Directives autorisées dans les fichiers <code>.htaccess</code></description>
541 <syntax>AllowOverrideList None|<var>directive</var>
542 [<var>directive-type</var>] ...</syntax>
543 <default>AllowOverrideList None</default>
544 <contextlist><context>directory</context></contextlist>
547 <p>Lorsque le serveur trouve un fichier <code>.htaccess</code>
548 (comme spécifié par la directive <directive
549 module="core">AccessFileName</directive>), il doit savoir lesquelles
550 des directives déclarées dans ce fichier peuvent remplacer des
551 directives des fichiers de configuration du serveur.</p>
553 <note><title>Seulement disponible dans les sections <Directory></title>
554 La directive <directive>AllowOverrideList</directive> n'est
555 disponible que dans les sections <directive type="section"
556 module="core">Directory</directive> spécifiées sans expressions
560 <p>Lorsque cette directive et la directive <directive
561 module="core">AllowOverride</directive> sont définies à
562 <code>None</code>, les fichiers <a
563 href="#accessfilename">.htaccess</a> sont totalement ignorés. Dans
564 ce cas, le serveur ne cherchera même pas à lire des fichiers
565 <code>.htaccess</code> dans le système de fichiers.</p>
570 AllowOverride None<br />
571 AllowOverrideList Redirect RedirectMatch
574 <p>Dans l'exemple ci-dessus, seules les directives
575 <code>Redirect</code> et <code>RedirectMatch</code> sont autorisées.
576 Toutes les autres provoqueront une erreur interne du serveur.</p>
581 AllowOverride AuthConfig<br />
582 AllowOverrideList CookieTracking CookieName
585 <p>Dans l'exemple ci-dessus, la directive <directive
586 module="core">AllowOverride</directive> autorise les directives du
587 groupement <code>AuthConfig</code>, et
588 <directive>AllowOverrideList</directive> n'autorise que deux
589 directives du groupement <code>FileInfo</code>. Toutes les autres
590 provoqueront une erreur interne du serveur.</p>
593 <seealso><directive module="core">AccessFileName</directive></seealso>
594 <seealso><directive module="core">AllowOverride</directive></seealso>
595 <seealso><a href="../configuring.html">Fichiers de configuration</a></seealso>
596 <seealso><a href="../howto/htaccess.html">Fichiers .htaccess</a></seealso>
600 <name>CGIMapExtension</name>
601 <description>Technique permettant de localiser l'interpréteur des
602 scripts CGI</description>
603 <syntax>CGIMapExtension <var>chemin CGI</var> <var>.extension</var></syntax>
604 <contextlist><context>directory</context><context>.htaccess</context>
606 <override>FileInfo</override>
607 <compatibility>NetWare uniquement</compatibility>
610 <p>Cette directive permet de contrôler la manière dont Apache httpd trouve
611 l'interpréteur servant à exécuter les scripts CGI. Par exemple, avec
612 la définition <code>CGIMapExtension sys:\foo.nlm .foo</code>, tous
613 les fichiers scripts CGI possédant une extension <code>.foo</code>
614 seront passés à l'interpréteur FOO.</p>
619 <name>ContentDigest</name>
620 <description>Active la génération d'un en-tête <code>Content-MD5</code>
621 dans la réponse HTTP</description>
622 <syntax>ContentDigest On|Off</syntax>
623 <default>ContentDigest Off</default>
624 <contextlist><context>server config</context><context>virtual
626 <context>directory</context><context>.htaccess</context>
628 <override>Options</override>
629 <status>Expérimental</status>
632 <p>Cette directive active la génération d'un en-tête
633 <code>Content-MD5</code> selon les définitions des RFC 1864 et
636 <p>MD5 est un algorithme permettant de générer un condensé (parfois
637 appelé "empreinte") à partir de données d'une taille aléatoire ; le
638 degré de précision est tel que la moindre altération des données
639 d'origine entraîne une altération de l'empreinte.</p>
641 <p>L'en-tête <code>Content-MD5</code> permet de vérifier
642 l'intégrité de la réponse HTTP dans son ensemble. Un serveur mandataire
643 ou un client peut utiliser cet en-tête pour rechercher une
644 éventuelle modification accidentelle de la réponse au cours de sa
645 transmission. Exemple d'en-tête :</p>
648 Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA==
651 <p>Notez que des problèmes de performances peuvent affecter votre
652 serveur, car l'empreinte est générée pour chaque requête (il n'y a
653 pas de mise en cache).</p>
655 <p>L'en-tête <code>Content-MD5</code> n'est envoyé qu'avec les
656 documents servis par le module <module>core</module>, à l'exclusion
657 de tout autre module. Ainsi, les documents SSI, les sorties de
658 scripts CGI, et les réponses à des requêtes partielles (byte range)
659 ne comportent pas cet en-tête.</p>
664 <name>DefaultRuntimeDir</name>
665 <description>Répertoire de base des fichiers créés au cours de l'exécution du serveur</description>
666 <syntax>DefaultRuntimeDir <var>chemin-répertoire</var></syntax>
667 <default>DefaultRuntimeDir DEFAULT_REL_RUNTIMEDIR (logs/)</default>
668 <contextlist><context>server config</context></contextlist>
671 <p>La directive <directive>DefaultRuntimeDir</directive> permet de
672 définir le répertoire dans lequel le serveur va créer les différents
673 fichiers relatifs à son exécution (mémoire partagée, verrous,
674 etc...). Si le chemin spécifié est relatif, le chemin absolu sera
675 généré relativement à la valeur de la directive
676 <directive>ServerRoot</directive>.</p>
678 <example><title>Exemple</title>
679 DefaultRuntimeDir scratch/
682 <p>La valeur par défaut de la directive
683 <directive>DefaultRuntimeDir</directive> peut être modifiée en
684 changeant la valeur de la macro <code>DEFAULT_REL_RUNTIMEDIR</code>
685 définie à la compilation.</p>
687 <p>Note: si la valeur de <directive>ServerRoot</directive> n'a pas
688 été spécifiée avant d'utiliser cette directive, c'est la valeur par
689 défaut de <directive>ServerRoot</directive> qui sera utilisée pour
690 définir la base du répertoire.</p>
694 href="../misc/security_tips.html#serverroot">conseils à propos de
695 sésurité</a> pour plus d'informations en vue de définir correctement les
696 permissions sur la racine du serveur <directive>ServerRoot</directive></seealso>
700 <name>DefaultType</name>
701 <description>Les seuls effets de cette directive sont des émissions
702 d'avertissements si sa valeur est différente de <code>none</code>. Dans
703 les versions précédentes, DefaultType permettait de spécifier un type de
704 média à assigner par défaut au contenu d'une réponse pour lequel aucun
705 autre type de média n'avait été trouvé.
707 <syntax>DefaultType <var>type média|none</var></syntax>
708 <default>DefaultType none</default>
709 <contextlist><context>server config</context><context>virtual
711 <context>directory</context><context>.htaccess</context>
713 <override>FileInfo</override>
714 <compatibility>L'argument <code>none</code> est disponible dans les
715 versions d'Apache httpd 2.2.7 et supérieures. Tous les autres choix sont
716 DESACTIVÉS à partir des version 2.3.x.</compatibility>
719 <p>Cette directive a été désactivée. Pour la compatibilité
720 ascendante avec les anciens fichiers de configuration, elle peut
721 être spécifiée avec la valeur <code>none</code>, c'est à dire sans
722 type de médium par défaut. Par exemple :</p>
727 <p><code>DefaultType None</code> n'est disponible que dans les
728 versions d'Apache 2.2.7 et supérieures.</p>
730 <p>Utilisez le fichier de configuration mime.types et la directive
731 <directive module="mod_mime">AddType</directive> pour configurer
732 l'assignement d'un type de médium via les extensions de fichiers, ou
733 la directive <directive module="core">ForceType</directive> pour
734 attribuer un type de médium à des ressources spécifiques. Dans le
735 cas contraire, le serveur enverra sa réponse sans champ d'en-tête
736 Content-Type, et le destinataire devra déterminer lui-même le type
737 de médium.</p>
743 <description>Permet de définir une variable</description>
744 <syntax>Define <var>nom-paramètre</var> [<var>valeur-paramètre</var>]</syntax>
745 <contextlist><context>server config</context><context>virtual host</context>
746 <context>directory</context></contextlist>
749 <p>Avec un seul paramètre, l'effet de la directive
750 <directive>Define</directive> est identique à celui de l'argument
751 <code>-D</code> du programme <program>httpd</program>. Il permet de
752 modifier le comportement des sections <directive module="core"
753 type="section">IfDefine</directive> sans avoir à ajouter d'argument
754 <code>-D</code> au sein des scripts de démarrage.</p>
756 <p>De plus, le second paramètre permet d'affecter une valeur à la
757 variable définie par le premier. Cette variable peut être référencée
758 dans le fichier de configuration via la syntaxe <code>${VAR}</code>.
759 La portée de la variable est toujours globale, et n'est jamais
760 limitée à la section de configuration courante.</p>
763 <IfDefine TEST><br/>
764 Define servername test.example.com<br/>
765 </IfDefine><br/>
766 <IfDefine !TEST><br/>
767 Define servername www.example.com<br/>
768 Define SSL<br/>
769 </IfDefine><br/>
772 <p>Le caractère ":" est interdit dans les noms de variables afin
773 d'éviter les conflits avec la syntaxe de la directive <directive
774 module="mod_rewrite">RewriteMap</directive>.</p>
778 <directivesynopsis type="section">
779 <name>Directory</name>
780 <description>Regroupe un ensemble de directives qui ne s'appliquent
781 qu'au répertoire concerné du système de fichiers, à ses
782 sous-répertoires, et à leur contenu.</description>
783 <syntax><Directory <var>chemin répertoire</var>>
784 ... </Directory></syntax>
785 <contextlist><context>server config</context><context>virtual
790 <p>Les balises <directive type="section">Directory</directive> et
791 <code></Directory></code> permettent de regrouper un ensemble
792 de directives qui ne s'appliquent qu'au répertoire précisé,
793 à ses sous-répertoires, et aux fichiers situés dans ces
794 sous-répertoires. Toute directive
795 autorisée dans un contexte de répertoire peut être utilisée.
796 <var>chemin répertoire</var> est soit le chemin absolu d'un
797 répertoire, soit une chaîne de caractères avec caractères génériques
798 utilisant la comparaison Unix de style shell. Dans une chaîne de
799 caractères avec caractères génériques, <code>?</code> correspond à
800 un caractère quelconque, et <code>*</code> à toute chaîne de
801 caractères. Les intervalles de caractères <code>[]</code> sont aussi
802 autorisés. Aucun caractère générique ne peut remplacer le caractère
803 `/', si bien que l'expression <code><Directory
804 /*/public_html></code> ne conviendra pas pour le chemin
805 * <code>/home/user/public_html</code>, alors que <code><Directory
806 /home/*/public_html></code> conviendra. Exemple :</p>
809 <Directory /usr/local/httpd/htdocs><br />
811 Options Indexes FollowSymLinks<br />
817 <p>Soyez prudent avec l'argument <var>chemin répertoire</var> : il
818 doit correspondre exactement au chemin du système de fichier
819 qu'Apache httpd utilise pour accéder aux fichiers. Les directives
820 comprises dans une section <code><Directory></code> ne
821 s'appliqueront pas aux fichiers du même répertoire auxquels on
822 aura accédé via un chemin différent, per exemple via un lien
826 <p> Les <glossary ref="regex">Expressions rationnelles</glossary>
827 peuvent aussi être utilisées en ajoutant le caractère
828 <code>~</code>. Par exemple :</p>
831 <Directory ~ "^/www/.*/[0-9]{3}">
834 <p>pourra correspondre à tout répertoire situé dans /www/ et dont le
835 nom se compose de trois chiffres.</p>
837 <p>Si plusieurs sections <directive
838 type="section">Directory</directive> (sans expression rationnelle)
839 correspondent au répertoire (ou à un de ses parents) qui contient le
840 document, les directives de la section <directive
841 type="section">Directory</directive> dont le chemin est le plus
842 court sont appliquées en premier, en s'intercalant avec les
843 directives des fichiers <a href="#accessfilename">.htaccess</a>. Par
847 <Directory /><br />
849 AllowOverride None<br />
851 </Directory><br />
853 <Directory /home><br />
855 AllowOverride FileInfo<br />
860 <p>l'accès au document <code>/home/web/dir/doc.html</code> emprunte
861 le chemin suivant :</p>
864 <li>Aplication de la directive <code>AllowOverride None</code>
865 (qui désactive les fichiers <code>.htaccess</code>).</li>
867 <li>Application de la directive <code>AllowOverride
868 FileInfo</code> (pour le répertoire <code>/home</code>).</li>
870 <li>Application de toute directive <code>FileInfo</code> qui se
871 trouverait dans d'éventuels fichiers <code>/home/.htaccess</code>,
872 <code>/home/web/.htaccess</code> ou
873 <code>/home/web/dir/.htaccess</code>, dans cet ordre.</li>
876 <p>Les directives associées aux répertoires sous forme d'expressions
877 rationnelles ne sont prises en compte qu'une fois toutes les
878 directives des sections sans expressions rationnelles appliquées.
879 Alors, tous les répertoires avec expressions rationnelles sont
880 testés selon l'ordre dans lequel ils apparaissent dans le fichier de
881 configuration. Par exemple, avec</p>
884 <Directory ~ abc$><br />
886 # ... directives here ...<br />
891 <p>la section avec expression rationnelle ne sera prise en compte
892 qu'après les sections <directive
893 type="section">Directory</directive> sans expression rationnelle
894 et les fichiers <code>.htaccess</code>. Alors, l'expression
895 rationnelle conviendra pour <code>/home/abc/public_html/abc</code>
896 et la section <directive type="section">Directory</directive>
897 correspondante s'appliquera.</p>
899 <p><strong>Notez que la politique d'accès par défaut
900 dans les sections <code><Directory /></code> consiste à
901 autoriser tout accès sans restriction. Ceci signifie qu'Apache httpd va servir tout fichier
902 correspondant à une URL. Il est recommandé de modifier cette
903 situation à l'aide d'un bloc du style</strong></p>
906 <Directory /><br />
908 Require all denied<br />
913 <p><strong>puis d'affiner la configuration pour les répertoires que vous
914 voulez rendre accessibles. Voir la page <a
915 href="../misc/security_tips.html">Conseils à propos de sécurité</a>
916 pour plus de détails.</strong></p>
918 <p>Les sections <directive type="section">Directory</directive> se situent
919 dans le fichier <code>httpd.conf</code>. Les directives <directive
920 type="section">Directory</directive> ne peuvent pas être imbriquées
921 et ne sont pas autorisées dans les sections <directive module="core"
922 type="section">Limit</directive> ou <directive module="core"
923 type="section">LimitExcept</directive>.</p>
925 <seealso><a href="../sections.html">Comment fonctionnent les sections
926 <Directory>, <Location> et <Files></a> pour des
927 explications à propos de la manière dont ces différentes sections se
928 combinent entre elles à la réception d'une requête</seealso>
931 <directivesynopsis type="section">
932 <name>DirectoryMatch</name>
933 <description>Regroupe des directives qui s'appliquent au contenu de répertoires
934 du système de fichiers correspondant à une expression rationnelle</description>
935 <syntax><DirectoryMatch <var>regex</var>>
936 ... </DirectoryMatch></syntax>
937 <contextlist><context>server config
938 </context><context>virtual host</context>
942 <p>Les balises <directive type="section">DirectoryMatch</directive>
943 et <code></DirectoryMatch></code> permettent de regrouper un
944 ensemble de directives qui ne s'appliqueront qu'au répertoire
945 précisé (et aux fichiers qu'il contient), comme pour la section <directive
946 module="core" type="section">Directory</directive>. Cependant, le
947 répertoire est précisé sous la forme d'une <glossary
948 ref="regex">expression rationnelle</glossary>. Par exemple :</p>
951 <DirectoryMatch "^/www/(.+/)?[0-9]{3}">
954 <p>conviendrait pour les sous-répertoires de <code>/www/</code> dont
955 le nom se compose de trois chiffres.</p>
957 <note><title>Compatibilité</title>
958 Avant la version 2.3.9, cette directive s'appliquait aussi aux
959 sous-répertoires (comme la directive <directive module="core"
960 type="section">Directory</directive>), et ne tenait pas compte du
961 symbole de fin de ligne ($). Depuis la version 2.3.9, seuls les
962 répertoires qui correspondent à l'expression sont affectés par les
963 directives contenues dans la section.
966 <note><title>slash de fin</title>
967 Cette directive s'applique aux requêtes pour des répertoires avec
968 ou sans slash de fin ; les expressions contenant un symbole de fin
969 de ligne ($) doivent donc faire l'objet d'une attention
973 <seealso><directive type="section" module="core">Directory</directive>
974 pour une description de la manière dont les expressions rationnelles
975 sont traitées en présence d'autres sections <directive
976 type="section">Directory</directive> sans expressions rationnelles</seealso>
978 href="../sections.html">Comment fonctionnent les sections
979 <Directory>, <Location> et <Files></a> pour une
980 explication à propos de la manière dont ces différentes sections se
981 combinent entre elles à la réception d'une requête</seealso>
985 <name>DocumentRoot</name>
986 <description>Racine principale de l'arborescence des documents visible
987 depuis Internet</description>
988 <syntax>DocumentRoot <var>chemin répertoire</var></syntax>
989 <default>DocumentRoot /usr/local/apache/htdocs</default>
990 <contextlist><context>server config</context><context>virtual
995 <p>Cette directive permet de définir le répertoire à partir duquel
996 <program>httpd</program> va servir les fichiers. S'il ne correspond
997 pas à un <directive module="mod_alias">Alias</directive>, le chemin
998 de l'URL sera ajouté par le serveur à la racine des documents afin
999 de construire le chemin du document recherché. Exemple :</p>
1002 DocumentRoot /usr/web
1005 <p>un accès à <code>http://my.example.com/index.html</code> se
1006 réfère alors à <code>/usr/web/index.html</code>. Si <var>chemin
1007 répertoire</var> n'est pas un chemin absolu, il est considéré comme
1008 relatif au chemin défini par la directive <directive
1009 module="core">ServerRoot</directive>.</p>
1011 <p>Le répertoire défini par la directive
1012 <directive>DocumentRoot</directive> ne doit pas comporter de slash
1015 <seealso><a href="../urlmapping.html#documentroot">Mise en
1016 correspondance des URLs avec le système de fichiers</a></seealso>
1017 </directivesynopsis>
1019 <directivesynopsis type="section">
1021 <description>Contient des directives qui ne s'appliquent que si la
1022 condition correspondant à la section <directive type="section"
1023 module="core">If</directive> ou <directive type="section"
1024 module="core">ElseIf</directive> précédente n'est pas satisfaite par la
1025 requête à l'exécution</description>
1026 <syntax><Else> ... </Else></syntax>
1027 <contextlist><context>server config</context><context>virtual host</context>
1028 <context>directory</context><context>.htaccess</context>
1030 <override>All</override>
1033 <p>La section <directive type="section">Else</directive> applique
1034 les directives qu'elle contient si et seulement si les conditions
1035 correspondant à la section <directive type="section">If</directive>
1036 ou <directive type="section">ElseIf</directive> immédiatement
1037 supérieure et dans la même portée n'ont pas été satisfaites. Par
1041 <If "-z req('Host')"><br/>
1049 <p>La condition de la section <directive
1050 type="section">If</directive> serait satisfaite pour les requêtes
1051 HTTP/1.0 sans en-tête <var>Host:</var>, alors que celle de la section
1052 <directive type="section">Else</directive> le serait pour les
1053 requêtes comportant un en-tête <var>Host:</var>.</p>
1056 <seealso><directive type="section" module="core">If</directive></seealso>
1057 <seealso><directive type="section" module="core">ElseIf</directive></seealso>
1058 <seealso><a href="../sections.html">Fonctionnement des sections <Directory>, <Location>,
1059 <Files></a> pour une explication de la manière dont ces
1060 différentes section se combinent entre elles lorsqu'une requête est
1061 reçue. Les directives <directive type="section">If</directive>,
1062 <directive type="section">ElseIf</directive>, et <directive
1063 type="section">Else</directive> s'appliquent en dernier.</seealso>
1064 </directivesynopsis>
1066 <directivesynopsis type="section">
1068 <description>Contient des directives qui ne s'appliquent que si la
1069 condition correspondante est satisfaite par une requête à l'exécution,
1070 alors que la condition correspondant à la section <directive
1071 type="section" module="core">If</directive> ou <directive
1072 type="section">ElseIf</directive> précédente ne l'était pas.</description>
1073 <syntax><ElseIf <var>expression</var>> ... </ElseIf></syntax>
1074 <contextlist><context>server config</context><context>virtual host</context>
1075 <context>directory</context><context>.htaccess</context>
1077 <override>All</override>
1080 <p>La section <directive type="section">ElseIf</directive> applique
1081 les directives qu'elle contient si et seulement si d'une part la
1082 condition correspondante est satisfaite, et d'autre part la condition
1083 correspondant à la section <directive type="section">If</directive>
1084 ou <directive type="section">ElseIf</directive> de la même portée ne
1085 l'est pas. Par exemple, dans :</p>
1088 <If "-R '10.1.0.0/16'"><br/>
1091 <ElseIf "-R '10.0.0.0/8'"><br/>
1093 </ElseIf><br/>
1099 <p>La condition correspondant à la section <directive
1100 type="section">ElseIf</directive> est satisfaite si l'adresse
1101 distante de la requête appartient au sous-réseau 10.0.0.0/8, mais
1102 pas si elle appartient au sous-réseau 10.1.0.0/16.</p>
1105 <seealso><a href="../expr.html">Les expressions dans le serveur HTTP
1106 Apache</a>, pour une référence complète et d'autres exemples.</seealso>
1107 <seealso><directive type="section" module="core">If</directive></seealso>
1108 <seealso><directive type="section" module="core">Else</directive></seealso>
1109 <seealso><a href="../sections.html">Fonctionnement des sections <Directory>, <Location>,
1110 <Files></a> pour une explication de la manière dont ces
1111 différentes section se combinent entre elles lorsqu'une requête est
1112 reçue. Les directives <directive type="section">If</directive>,
1113 <directive type="section">ElseIf</directive>, et <directive
1114 type="section">Else</directive> s'appliquent en dernier.</seealso>
1115 </directivesynopsis>
1118 <name>EnableMMAP</name>
1119 <description>Utilise la projection en mémoire (Memory-Mapping) pour
1120 lire les fichiers pendant qu'ils sont servis</description>
1121 <syntax>EnableMMAP On|Off</syntax>
1122 <default>EnableMMAP On</default>
1123 <contextlist><context>server config</context><context>virtual
1125 <context>directory</context><context>.htaccess</context>
1127 <override>FileInfo</override>
1130 <p>Cette directive définit si <program>httpd</program> peut utiliser
1131 la projection en mémoire (Memory-Mapping) quand il doit lire le contenu
1132 d'un fichier pendant qu'il est servi. Par défaut, lorsque le
1133 traitement d'une requête requiert l'accès aux données contenues dans
1134 un fichier -- par exemple, pour servir un fichier interprété par le
1135 serveur à l'aide de <module>mod_include</module> -- Apache httpd projette
1136 le fichier en mémoire si le système d'exploitation le permet.</p>
1138 <p>Cette projection en mémoire induit parfois une amélioration des
1139 performances. Sur certains systèmes cependant, il est préférable de
1140 désactiver la projection en mémoire afin d'éviter certains problèmes
1141 opérationnels :</p>
1144 <li>Sur certains systèmes multi-processeurs, la projection en
1145 mémoire peut dégrader les performances du programme
1146 <program>httpd</program>.</li>
1147 <li>S'il fait l'objet d'une projection en mémoire par
1148 <program>httpd</program>, la suppression ou la troncature d'un
1149 fichier peut provoquer un crash de <program>httpd</program> avec une
1150 erreur de segmentation.</li>
1153 <p>Pour les configurations de serveur sujettes à ce genre de
1154 problème, il est préférable de désactiver la projection en mémoire
1155 des fichiers servis en spécifiant :</p>
1161 <p>Pour les montages NFS, cette fonctionnalité peut être
1162 explicitement désactivée pour les fichiers concernés en spécifiant
1166 <Directory "/chemin vers montage NFS">
1173 </directivesynopsis>
1176 <name>EnableSendfile</name>
1177 <description>Utilise le support sendfile du noyau pour servir les
1178 fichiers aux clients</description>
1179 <syntax>EnableSendfile On|Off</syntax>
1180 <default>EnableSendfile Off</default>
1181 <contextlist><context>server config</context><context>virtual
1183 <context>directory</context><context>.htaccess</context>
1185 <override>FileInfo</override>
1186 <compatibility>Disponible dans les versions 2.0.44 et
1187 supérieures. Par défaut à Off depuis la version 2.3.9.</compatibility>
1190 <p>Cette directive définit si le programme <program>httpd</program>
1191 peut utiliser le support sendfile du noyau pour transmettre le
1192 contenu des fichiers aux clients. Par défaut, lorsque le traitement
1193 d'une requête ne requiert pas l'accès aux données contenues dans un
1194 fichier -- par exemple, pour la transmission d'un fichier statique
1195 -- Apache httpd utilise sendfile pour transmettre le contenu du fichier
1196 sans même lire ce dernier, si le système d'exploitation le
1199 <p>Ce mécanisme sendfile évite la séparation des opérations de
1200 lecture et d'envoi, ainsi que les réservations de tampons. sur
1201 certains systèmes cependant, ou sous certains systèmes de fichiers,
1202 il est préférable de désactiver cette fonctionnalité afin d'éviter
1203 certains problèmes opérationnels :</p>
1206 <li>Certains systèmes peuvent présenter un support sendfile
1207 défectueux que le système de compilation n'a pas détecté, en
1208 particulier si les exécutables ont été compilés sur une autre
1209 machine, puis copiés sur la première avec un support sendfile
1210 défectueux.</li>
1211 <li>Sous Linux, l'utilisation de sendfile induit des bogues lors de
1212 la récupération des paquets de vérification TCP (TCP-checksum) avec
1213 certaines cartes réseau lorsqu'on utilise IPv6.</li>
1214 <li>Sous Linux sur Itanium, <code>sendfile</code> peut s'avérer incapable de
1215 traiter les fichiers de plus de 2 Go.</li>
1216 <li>Avec un montage réseau de <directive
1217 module="core">DocumentRoot</directive> (par exemple NFS, SMB, CIFS,
1219 noyau peut s'avérer incapable de servir un fichier de ce montage
1220 réseau en passant par son propre cache.</li>
1223 <p>Pour les configurations de serveur non sujettes à ce genre de
1224 problème, vous pouvez activer cette fonctionnalité en
1225 spécifiant :</p>
1231 <p>Pour les montages réseau, cette fonctionnalité peut être
1232 explicitement désactivée pour les fichiers concernés en spécifiant
1236 <Directory "/chemin vers montage réseau">
1242 <p>Veuillez noter que la configuration de la directive
1243 <directive>EnableSendfile</directive> dans un contexte de répertoire
1244 ou de fichier .htaccess n'est pas supportée par
1245 <module>mod_cache_disk</module>. Le module ne prend en compte la
1246 définition de <directive>EnableSendfile</directive> que dans un
1250 </directivesynopsis>
1254 <description>Interrompt la lecture de la configuration avec un message
1255 d'erreur personnalisé</description>
1256 <syntax>Error <var>message</var></syntax>
1257 <contextlist><context>server config</context><context>virtual host</context>
1258 <context>directory</context><context>.htaccess</context>
1260 <compatibility>à partir de la version 2.3.9</compatibility>
1263 <p>Si une erreur peut être détectée dans la configuration, souvent
1264 un module manquant, cette
1265 directive peut être utilisée pour générer un message d'erreur
1266 personnalisé, et interrompre la lecture de la configuration. </p>
1268 <example><title>Exemple</title>
1269 # vérification du chargement de mod_include<br />
1270 <IfModule !include_module><br />
1271 Error mod_foo nécessite mod_include. Chargez-le via LoadModule.<br />
1272 </IfModule><br />
1274 # vérification de la définition de SSL ou (exclusif) NOSSL<br />
1275 <IfDefine SSL><br />
1276 <IfDefine NOSSL><br />
1277 Error SSL et NOSSL sont définies. Vous devez définir soit l'une,
1279 </IfDefine><br />
1280 </IfDefine><br />
1281 <IfDefine !SSL><br />
1282 <IfDefine !NOSSL><br />
1283 Error Vous devez définir une et une seule des deux variables SSL
1285 </IfDefine><br />
1286 </IfDefine><br />
1290 </directivesynopsis>
1293 <name>ErrorDocument</name>
1294 <description>Document que le serveur renvoie au client en cas
1295 d'erreur</description>
1296 <syntax>ErrorDocument <var>code erreur</var> <var>document</var></syntax>
1297 <contextlist><context>server config</context><context>virtual
1299 <context>directory</context><context>.htaccess</context>
1301 <override>FileInfo</override>
1304 <p>Apache httpd peut traiter les problèmes et les erreurs de quatre
1305 manières,</p>
1308 <li>afficher un simple message d'erreur au contenu fixe</li>
1310 <li>afficher un message personnalisé</li>
1312 <li>rediriger vers un <var>chemin d'URL</var> local pour traiter
1313 le problème ou l'erreur</li>
1315 <li>rediriger vers une <var>URL</var> externe pour traiter
1316 le problème ou l'erreur</li>
1319 <p>La première option constitue le comportement par défaut; pour
1320 choisir une des trois autres options, il faut configurer Apache à
1321 l'aide de la directive <directive>ErrorDocument</directive>, suivie
1322 du code de la réponse HTTP et d'une URL ou d'un message. Apache
1323 httpd fournit parfois des informations supplémentaires à propos du
1324 problème ou de l'erreur.</p>
1326 <p>Les URLs peuvent commencer par un slash (/) pour les chemins web
1327 locaux (relatifs au répertoire défini par la directive <directive
1328 module="core">DocumentRoot</directive>), ou se présenter sous la
1329 forme d'une URL complète que le client pourra résoudre.
1330 Alternativement, un message à afficher par le navigateur pourra être
1331 fourni. Exemples :</p>
1334 ErrorDocument 500 http://foo.example.com/cgi-bin/tester<br />
1335 ErrorDocument 404 /cgi-bin/bad_urls.pl<br />
1336 ErrorDocument 401 /subscription_info.html<br />
1337 ErrorDocument 403 "Désolé, vous n'avez pas l'autorisation d'accès
1339 ErrorDocument 403 Interdit!
1342 <p>De plus, on peut spécifier la valeur spéciale <code>default</code>
1343 pour indiquer l'utilisation d'un simple message d'Apache httpd codé en
1344 dur. Bien que non nécessaire dans des circonstances normales, la
1345 spécification de la valeur <code>default</code> va permettre de
1346 rétablir l'utilisation du simple message d'Apache httpd codé en dur pour
1347 les configurations qui sans cela, hériteraient d'une directive
1348 <directive>ErrorDocument</directive> existante.</p>
1351 ErrorDocument 404 /cgi-bin/bad_urls.pl<br /><br />
1352 <Directory /web/docs><br />
1354 ErrorDocument 404 default<br />
1359 <p>Notez que lorsque vous spécifiez une directive
1360 <directive>ErrorDocument</directive> pointant vers une URL distante
1361 (c'est à dire tout ce qui commence par le préfixe http), le serveur
1363 envoyer une redirection au client afin de lui indiquer où trouver le
1364 document, même dans le cas où ce document se trouve sur le serveur
1365 local. Ceci a de nombreuses conséquences dont la plus importante
1366 réside dans le fait que le client ne recevra pas le code d'erreur
1367 original, mais au contraire un code de statut de redirection. Ceci
1368 peut en retour semer la confusion chez les robots web et divers
1369 clients qui tentent de déterminer la validité d'une URL en examinant
1370 le code de statut. De plus, si vous utilisez une URL distante avec
1371 <code>ErrorDocument 401</code>, le client ne saura pas qu'il doit
1372 demander un mot de passe à l'utilisateur car il ne recevra pas le
1373 code de statut 401. C'est pourquoi, <strong>si vous utilisez une
1374 directive <code>ErrorDocument 401</code>, elle devra faire référence
1375 à un document par le biais d'un chemin local.</strong></p>
1377 <p>Microsoft Internet Explorer (MSIE) ignore par défaut les messages
1378 d'erreur générés par le serveur lorsqu'ils sont trop courts et
1379 remplacent ses propres messages d'erreur "amicaux". Le seuil de
1380 taille varie en fonction du type d'erreur, mais en général, si la
1381 taille de votre message d'erreur est supérieure à 512 octets, il y a
1382 peu de chances pour que MSIE l'occulte, et il sera affiché par ce
1383 dernier. Vous trouverez d'avantage d'informations dans l'article de
1384 la base de connaissances Microsoft <a
1385 href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807"
1388 <p>Bien que la plupart des messages d'erreur internes originaux
1389 puissent être remplacés, ceux-ci sont cependant conservés dans
1390 certaines circonstances sans tenir compte de la définition de la
1391 directive <directive module="core">ErrorDocument</directive>. En
1392 particulier, en cas de détection d'une requête mal formée, le
1393 processus de traitement normal des requêtes est immédiatement
1394 interrompu, et un message d'erreur interne est renvoyé, ceci afin de
1395 se prémunir contre les problèmes de sécurité liés aux requêtes mal
1398 <p>Si vous utilisez mod_proxy, il est en général préférable
1399 d'activer <directive
1400 module="mod_proxy">ProxyErrorOverride</directive> afin d'être en
1401 mesure de produire des messages d'erreur personnalisés pour le
1402 compte de votre serveur d'origine. Si vous n'activez pas
1403 ProxyErrorOverride, Apache httpd ne générera pas de messages d'erreur
1404 personnalisés pour le contenu mandaté.</p>
1408 <seealso><a href="../custom-error.html">documentation sur la
1409 personnalisation des réponses</a></seealso>
1410 </directivesynopsis>
1413 <name>ErrorLog</name>
1414 <description>Définition du chemin du journal des erreurs</description>
1415 <syntax> ErrorLog <var>chemin fichier</var>|syslog[:<var>facility</var>]</syntax>
1416 <default>ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows and OS/2)</default>
1417 <contextlist><context>server config</context><context>virtual
1422 <p>La directive <directive>ErrorLog</directive> permet de définir le
1423 nom du fichier dans lequel le serveur va journaliser toutes les
1424 erreurs qu'il rencontre. Si le <var>chemin fichier</var> n'est pas
1425 absolu, il est considéré comme relatif au chemin défini par la
1426 directive <directive module="core">ServerRoot</directive>.</p>
1428 <example><title>Exemple</title>
1429 ErrorLog /var/log/httpd/error_log
1432 <p>Si le <var>chemin fichier</var> commence par une barre verticale
1433 "<code>(|)</code>", il est considéré comme une commande à lancer pour traiter la
1434 journalisation de l'erreur.</p>
1436 <example><title>Exemple</title>
1437 ErrorLog "|/usr/local/bin/erreurs_httpd"
1440 <p>Voir les notes à propos des <a href="../logs.html#piped">journaux
1441 redirigés</a> pour plus d'informations.</p>
1443 <p>L'utilisation de <code>syslog</code> à la place d'un nom de
1444 fichier active la journalisation via syslogd(8) si le système le
1445 supporte. Le dispositif syslog par défaut est <code>local7</code>,
1446 mais vous pouvez le modifier à l'aide de la syntaxe
1447 <code>syslog:<var>facility</var></code>, où <var>facility</var> peut
1448 être remplacé par un des noms habituellement documentés dans la page
1449 de man syslog(1). Le dispositif syslog <code>local7</code> est
1450 global, et si il est modifié dans un serveur virtuel, le dispositif
1451 final spécifié affecte l'ensemble du serveur</p>
1453 <example><title>Exemple</title>
1454 ErrorLog syslog:user
1457 <p>SECURITE : Voir le document <a
1458 href="../misc/security_tips.html#serverroot">conseils à propos de
1459 sécurité</a> pour des détails sur les raisons pour lesquelles votre
1460 sécurité peut être compromise si le répertoire contenant les
1461 fichiers journaux présente des droits en écriture pour tout autre
1462 utilisateur que celui sous lequel le serveur est démarré.</p>
1463 <note type="warning"><title>Note</title>
1464 <p>Lors de la spécification d'un chemin de fichier sur les
1465 plates-formes non-Unix, on doit veiller à n'utiliser que des
1466 slashes (/), même si la plate-forme autorise l'utilisation des
1467 anti-slashes (\). Et d'une manière générale, il est recommandé de
1468 n'utiliser que des slashes (/) dans les fichiers de
1472 <seealso><directive module="core">LogLevel</directive></seealso>
1473 <seealso><a href="../logs.html">Fichiers journaux du serveur HTTP Apache</a></seealso>
1474 </directivesynopsis>
1477 <name>ErrorLogFormat</name>
1478 <description>Spécification du format des entrées du journal des erreurs</description>
1479 <syntax> ErrorLogFormat [connection|request] <var>format</var></syntax>
1480 <contextlist><context>server config</context><context>virtual host</context>
1482 <compatibility>Disponible depuis la version 2.3.9 d'Apache</compatibility>
1485 <p>La directive <directive>ErrorLogFormat</directive> permet de
1486 spécifier quelles informations supplémentaires vont être enregistrées
1487 dans le journal des erreurs en plus du message habituel.</p>
1489 <example><title>Exemple simple</title>
1490 ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"
1493 <p>La spécification de <code>connection</code> ou
1494 <code>request</code> comme premier paramètre permet de définir des
1495 formats supplémentaires, ce qui a pour effet de journaliser des
1496 informations additionnelles lorsque le premier message est
1497 enregistré respectivement pour une connexion ou une requête
1498 spécifique. Ces informations additionnelles ne sont enregistrées
1499 qu'une seule fois par connexion/requête. Si le traitement d'une
1500 connexion ou d'une requête ne génère aucun message dans le journal,
1501 alors aucune information additionnelle n'est enregistrée.</p>
1503 <p>Il peut arriver que certains items de la chaîne de format ne
1504 produisent aucune sortie. Par exemple, l'en-tête Referer n'est
1505 présent que si le message du journal est associé à une requête et s'il
1506 est généré à un moment où l'en-tête Referer a déjà été lu par le
1507 client. Si aucune sortie n'est générée, le comportement par défaut
1508 consiste à supprimer tout ce qui se trouve entre l'espace précédent
1509 et le suivant. Ceci implique que la ligne de journalisation est
1510 divisée en champs ne contenant pas d'espace séparés par des espaces.
1511 Si un item de la chaîne de format ne génère aucune sortie,
1512 l'ensemble du champ est omis. Par exemple, si l'adresse distante
1513 <code>%a</code> du format <code>[%t] [%l] [%a] %M </code> n'est
1514 pas disponible, les crochets qui l'entourent ne seront eux-mêmes pas
1515 enregistrés. Il est possible d'échapper les espaces par un anti-slash
1516 afin qu'ils ne soient pas considérés comme séparateurs de champs.
1517 La combinaison '% ' (pourcentage espace) est un délimiteur de
1518 champ de taille nulle qui ne génère aucune sortie.</p>
1520 <p>Ce comportement peut être changé en ajoutant des modificateurs à
1521 l'item de la chaîne de format. Le modificateur <code>-</code>
1522 (moins) provoque l'enregistrement d'un signe moins si l'item
1523 considéré ne génère aucune sortie. Pour les formats à enregistrement
1524 unique par connexion/requête, il est aussi possible d'utiliser le
1525 modificateur <code>+</code> (plus). Si un item ne générant aucune
1526 sortie possède le modificateur plus, la ligne dans son ensemble est
1529 <p>Un modificateur de type entier permet d'assigner un niveau de
1530 sévérité à un item de format. L'item considéré ne
1531 sera journalisé que si la sévérité du message n'est pas
1532 plus haute que le niveau de sévérité spécifié. Les
1533 valeurs possibles vont de 1 (alert) à 15 (trace8), en passant par 4
1534 (warn) ou 7 (debug).</p>
1536 <p>Par exemple, voici ce qui arriverait si vous ajoutiez des
1537 modificateurs à l'item <code>%{Referer}i</code> qui enregistre le
1538 contenu de l'en-tête <code>Referer</code>.</p>
1540 <table border="1" style="zebra">
1541 <columnspec><column width=".3"/><column width=".7"/></columnspec>
1543 <tr><th>Item modifié</th><th>Signification</th></tr>
1546 <td><code>%-{Referer}i</code></td>
1547 <td>Enregistre le caractère <code>-</code> si l'en-tête
1548 <code>Referer</code> n'est pas défini.</td>
1552 <td><code>%+{Referer}i</code></td>
1553 <td>N'enregistre rien si l'en-tête
1554 <code>Referer</code> n'est pas défini.</td>
1558 <td><code>%4{Referer}i</code></td>
1559 <td>N'enregistre le contenu de l'en-tête <code>Referer</code> que si
1560 la sévérité du message de journalisation est supérieure à 4.</td>
1565 <p>Certains items de format acceptent des paramètres supplémentaires
1566 entre accolades.</p>
1568 <table border="1" style="zebra">
1569 <columnspec><column width=".2"/><column width=".8"/></columnspec>
1571 <tr><th>Chaîne de format</th> <th>Description</th></tr>
1573 <tr><td><code>%%</code></td>
1574 <td>Le signe pourcentage</td></tr>
1576 <tr><td><code>%a</code></td>
1577 <td>Adresse IP et port clients</td></tr>
1579 <tr><td><code>%{c}a</code></td>
1580 <td>Port et adresse IP sous-jacents du correspondant pour la
1581 connexion (voir le module
1582 <module>mod_remoteip</module>)</td></tr>
1584 <tr><td><code>%A</code></td>
1585 <td>Adresse IP et port locaux</td></tr>
1587 <tr><td><code>%{<em>name</em>}e</code></td>
1588 <td>Variable d'environnement de requête <em>name</em></td></tr>
1590 <tr><td><code>%E</code></td>
1591 <td>Etat d'erreur APR/OS et chaîne</td></tr>
1593 <tr><td><code>%F</code></td>
1594 <td>Nom du fichier source et numéro de ligne de l'appel du
1597 <tr><td><code>%{<em>name</em>}i</code></td>
1598 <td>En-tête de requête <em>name</em></td></tr>
1600 <tr><td><code>%k</code></td>
1601 <td>Nombre de requêtes persistantes pour cette connexion</td></tr>
1603 <tr><td><code>%l</code></td>
1604 <td>Sévérité du message</td></tr>
1606 <tr><td><code>%L</code></td>
1607 <td>Identifiant journal de la requête</td></tr>
1609 <tr><td><code>%{c}L</code></td>
1610 <td>Identifiant journal de la connexion</td></tr>
1612 <tr><td><code>%{C}L</code></td>
1613 <td>Identifiant journal de la connexion si utilisé dans la
1614 portée de la connexion, vide sinon</td></tr>
1616 <tr><td><code>%m</code></td>
1617 <td>Nom du module qui effectue la journalisation du message</td></tr>
1619 <tr><td><code>%M</code></td>
1620 <td>Le message effectif</td></tr>
1622 <tr><td><code>%{<em>name</em>}n</code></td>
1623 <td>Note de requête <em>name</em></td></tr>
1625 <tr><td><code>%P</code></td>
1626 <td>Identifiant du processus courant</td></tr>
1628 <tr><td><code>%T</code></td>
1629 <td>Identifiant du thread courant</td></tr>
1631 <tr><td><code>%{g}T</code></td>
1632 <td>Identifiant unique de thread système du thread courant
1633 (l'identifiant affiché par la commande <code>top</code> par
1634 exemple ; seulement sous Linux pour l'instant)</td></tr>
1636 <tr><td><code>%t</code></td>
1637 <td>L'heure courante</td></tr>
1639 <tr><td><code>%{u}t</code></td>
1640 <td>L'heure courante avec les microsecondes</td></tr>
1642 <tr><td><code>%{cu}t</code></td>
1643 <td>L'heure courante au format compact ISO 8601, avec les
1644 microsecondes</td></tr>
1646 <tr><td><code>%v</code></td>
1647 <td>Le nom de serveur canonique <directive
1648 module="core">ServerName</directive> du serveur courant.</td></tr>
1650 <tr><td><code>%V</code></td>
1651 <td>Le nom de serveur du serveur qui sert la requête en accord
1652 avec la définition de la directive <directive module="core"
1653 >UseCanonicalName</directive>.</td></tr>
1655 <tr><td><code>\ </code> (anti-slash espace)</td>
1656 <td>Espace non délimiteur</td></tr>
1658 <tr><td><code>% </code> (pourcentage espace)</td>
1659 <td>Délimiteur de champ (aucune sortie)</td></tr>
1662 <p>L'item de format identifiant journal <code>%L</code> génère un
1663 identifiant unique pour une connexion ou une requête. Il peut servir
1664 à déterminer quelles lignes correspondent à la même connexion ou
1665 requête ou quelle requête est associée à tel connexion. Un item de
1666 format <code>%L</code> est aussi disponible dans le module
1667 <module>mod_log_config</module>, mais il permet dans ce contexte de
1668 corréler les entrées du journal des accès avec celles du journal des
1669 erreurs. Si le module <module>mod_unique_id</module> est chargé,
1670 c'est son identifiant unique qui sera utilisé comme identifiant de
1671 journal pour les requêtes.</p>
1673 <example><title>Exemple (format par défaut)</title>
1674 ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a]
1675 %M% ,\ referer\ %{Referer}i"
1678 <p>Cet exemple renverrait un message d'erreur du style :</p>
1681 [Thu May 12 08:28:57.652118 2011] [core:error] [pid 8777:tid 4326490112] [client ::1:58619] File does not exist: /usr/local/apache2/htdocs/favicon.ico
1684 <p>Notez que, comme indiqué plus haut, certains champs sont
1685 totalement supprimés s'ils n'ont pas été définis.</p>
1687 <example><title>Exemple (similaire au format 2.2.x)</title>
1688 ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a]
1689 %M% ,\ referer\ %{Referer}i"
1692 <example><title>Exemple avancé avec identifiants journal de
1693 requête/connexion</title>
1694 ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"<br/>
1695 ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"<br/>
1696 ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"<br/>
1697 ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"<br/>
1698 ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"<br/>
1702 <seealso><directive module="core">ErrorLog</directive></seealso>
1703 <seealso><directive module="core">LogLevel</directive></seealso>
1704 <seealso><a href="../logs.html">Fichiers journaux du serveur HTTP Apache</a></seealso>
1705 </directivesynopsis>
1708 <name>ExtendedStatus</name>
1709 <description>Extrait des informations d'état étendues pour chaque
1710 requête</description>
1711 <syntax>ExtendedStatus On|Off</syntax>
1712 <default>ExtendedStatus Off</default>
1713 <contextlist><context>server config</context></contextlist>
1717 <p>Cette option permet d'extraire des données supplémentaires
1718 concernant la requête en cours de traitement pour un processus
1719 donné, ainsi qu'un résumé d'utilisation ; vous pouvez accéder à
1720 ces variables pendant l'exécution en configurant
1721 <module>mod_status</module>. Notez que d'autres modules sont
1722 susceptibles de s'appuyer sur ce tableau de bord.</p>
1724 <p>Cette directive s'applique au serveur dans son ensemble, et ne
1725 peut pas être activée/désactivée pour un serveur virtuel
1726 particulier. Notez que l'extraction des informations d'état étendues
1727 peut ralentir le serveur. Notez aussi que cette définition ne peut
1728 pas être modifiée au cours d'un redémarrage graceful.</p>
1731 <p>Notez que le chargement de <module>mod_status</module> définit
1732 automatiquement ExtendedStatus à On, et que d'autres modules tiers
1733 sont susceptibles d'en faire de même. De tels modules ont besoin
1734 d'informations détaillées à propos de l'état de tous les processus.
1735 Depuis la version 2.3.6, <module>mod_status</module> a définit la
1736 valeur par défaut à On, alors qu'elle était à Off dans les versions
1737 antérieures.</p>
1742 </directivesynopsis>
1745 <name>FileETag</name>
1746 <description>Caractéristiques de fichier utilisées lors de la génération
1747 de l'en-tête de réponse HTTP ETag pour les fichiers statiques</description>
1748 <syntax>FileETag <var>composant</var> ...</syntax>
1749 <default>FileETag MTime Size</default>
1750 <contextlist><context>server config</context><context>virtual
1752 <context>directory</context><context>.htaccess</context>
1754 <override>FileInfo</override>
1755 <compatibility>La valeur par défaut était "INode MTime Size"
1756 dans les versions 2.3.14 et antérieures.</compatibility>
1760 La directive <directive>FileETag</directive> définit les
1761 caractéristiques de fichier utilisées lors de la génération de
1762 l'en-tête de réponse HTTP <code>ETag</code> (entity tag) quand le
1763 document est contenu dans un fichier statique(la valeur de
1765 est utilisée dans le cadre de la gestion du cache pour préserver la
1766 bande passante réseau). La directive
1767 <directive>FileETag</directive> vous permet maintenant de choisir
1768 quelles caractéristiques du fichier vont être utilisées, le cas
1769 échéant. Les mots-clés reconnus sont :
1773 <dt><strong>INode</strong></dt>
1774 <dd>Le numéro d'i-node du fichier sera inclus dans le processus de
1775 génération</dd>
1776 <dt><strong>MTime</strong></dt>
1777 <dd>La date et l'heure auxquelles le fichier a été modifié la
1778 dernière fois seront incluses</dd>
1779 <dt><strong>Size</strong></dt>
1780 <dd>La taille du fichier en octets sera incluse</dd>
1781 <dt><strong>All</strong></dt>
1782 <dd>Tous les champs disponibles seront utilisés. Cette définition
1783 est équivalente à : <example>FileETag INode MTime
1785 <dt><strong>None</strong></dt>
1786 <dd>Si le document se compose d'un fichier, aucun champ
1787 <code>ETag</code> ne sera inclus dans la réponse</dd>
1790 <p>Les mots-clés <code>INode</code>, <code>MTime</code>, et
1791 <code>Size</code> peuvent être préfixés par <code>+</code> ou
1792 <code>-</code>, ce qui permet de modifier les valeurs par défaut
1793 héritées d'un niveau de configuration plus général. Tout mot-clé
1794 apparaissant sans aucun préfixe annule entièrement et immédiatement
1795 les configurations héritées.</p>
1797 <p>Si la configuration d'un répertoire contient
1798 <code>FileETag INode MTime Size</code>, et si un de
1799 ses sous-répertoires contient <code>FileETag -INode</code>, la
1800 configuration de ce sous-répertoire (qui sera propagée vers tout
1801 sous-répertoire qui ne la supplante pas), sera équivalente à
1802 <code>FileETag MTime Size</code>.</p>
1803 <note type="warning"><title>Avertissement</title>
1804 Ne modifiez pas les valeurs par défaut pour les répertoires ou
1805 localisations où WebDAV est activé et qui utilisent
1806 <module>mod_dav_fs</module> comme fournisseur de stockage.
1807 <module>mod_dav_fs</module> utilise
1808 <code>MTime Size</code> comme format fixe pour les
1809 comparaisons de champs <code>ETag</code> dans les requêtes
1810 conditionnelles. Ces requêtes conditionnelles échoueront si le
1811 format <code>ETag</code> est modifié via la directive
1812 <directive>FileETag</directive>.
1814 <note><title>Inclusions côté serveur</title>
1815 Aucun champ ETag n'est généré pour les réponses interprétées par
1816 <module>mod_include</module>, car l'entité de la réponse peut
1817 changer sans modification de l'INode, du MTime, ou de la taille du
1818 fichier statique contenant les directives SSI.
1823 </directivesynopsis>
1825 <directivesynopsis type="section">
1827 <description>Contient des directives qui s'appliquent aux fichiers
1828 précisés</description>
1829 <syntax><Files <var>nom fichier</var>> ... </Files></syntax>
1830 <contextlist><context>server config</context><context>virtual
1832 <context>directory</context><context>.htaccess</context>
1834 <override>All</override>
1837 <p>La directive <directive type="section">Files</directive> limite
1838 la portée des directives qu'elle contient aux fichiers précisés.
1839 Elle est comparable aux directives <directive module="core"
1840 type="section">Directory</directive> et <directive module="core"
1841 type="section">Location</directive>. Elle doit se terminer par une
1842 balise <code></Files></code>. Les directives contenues dans
1843 cette section s'appliqueront à tout objet dont le nom de base (la
1844 dernière partie du nom de fichier) correspond au fichier spécifié.
1845 Les sections <directive type="section">Files</directive> sont
1846 traitées selon l'ordre dans lequel elles apparaissent dans le
1847 fichier de configuration, après les sections <directive module="core"
1848 type="section">Directory</directive> et la lecture des fichiers
1849 <code>.htaccess</code>, mais avant les sections <directive
1850 type="section" module="core">Location</directive>. Notez que les
1851 sections <directive type="section">Files</directive> peuvent être
1852 imbriquées dans les sections <directive type="section"
1853 module="core">Directory</directive> afin de restreindre la portion
1854 du système de fichiers à laquelle ces dernières vont
1857 <p>L'argument <var>filename</var> peut contenir un nom de fichier
1858 ou une chaîne de caractères avec caractères génériques, où
1859 <code>?</code> remplace un caractère, et <code>*</code> toute chaîne
1860 de caractères. On peut aussi utiliser les <glossary
1861 ref="regex">Expressions rationnelles</glossary> en ajoutant la
1862 caractère <code>~</code>. Par exemple :</p>
1865 <Files ~ "\.(gif|jpe?g|png)$">
1868 <p>correspondrait à la plupart des formats graphiques de l'Internet.
1869 Il est cependant préférable d'utiliser la directive <directive
1870 module="core" type="section">FilesMatch</directive>.</p>
1872 <p>Notez qu'à la différence des sections <directive type="section"
1873 module="core">Directory</directive> et <directive type="section"
1874 module="core">Location</directive>, les sections <directive
1875 type="section">Files</directive> peuvent être utilisées dans les
1876 fichiers <code>.htaccess</code>. Ceci permet aux utilisateurs de
1877 contrôler l'accès à leurs propres ressources, fichier par
1881 <seealso><a href="../sections.html">Comment fonctionnent les sections
1882 <Directory>, <Location> et <Files></a> pour une
1883 explication de la manière dont ces différentes sections se combinent
1884 entre elles à la réception d'une requête</seealso>
1885 </directivesynopsis>
1887 <directivesynopsis type="section">
1888 <name>FilesMatch</name>
1889 <description>Contient des directives qui s'appliquent à des fichiers
1890 spécifiés sous la forme d'expressions rationnelles</description>
1891 <syntax><FilesMatch <var>expression rationnelle</var>> ...
1892 </FilesMatch></syntax>
1893 <contextlist><context>server config</context><context>virtual
1895 <context>directory</context><context>.htaccess</context>
1897 <override>All</override>
1900 <p>La section <directive type="section">FilesMatch</directive>
1901 limite la portée des directives qu'elle contient aux fichiers
1902 spécifiés, tout comme le ferait une section <directive module="core"
1903 type="section">Files</directive>. Mais elle accepte aussi les
1904 <glossary ref="regex">expressions rationnelles</glossary>. Par
1908 <FilesMatch "\.(gif|jpe?g|png)$">
1911 <p>correspondrait à la plupart des formats graphiques de
1915 <seealso><a href="../sections.html">Comment fonctionnent les sections
1916 <Directory>, <Location> et <Files></a> pour une
1917 explication de la manière dont ces différentes sections se combinent
1918 entre elles à la réception d'une requête</seealso>
1919 </directivesynopsis>
1922 <name>ForceType</name>
1923 <description>Force le type de médium spécifié dans le champ d'en-tête
1924 HTTP Content-Type pour les fichiers correspondants</description>
1925 <syntax>ForceType <var>type médium</var>|None</syntax>
1926 <contextlist><context>directory</context><context>.htaccess</context>
1928 <override>FileInfo</override>
1929 <compatibility>Intégré dans le coeur d'Apache httpd depuis la version
1933 <p>Lorsqu'elle est placée dans un fichier <code>.htaccess</code> ou
1934 une section <directive type="section"
1935 module="core">Directory</directive>, <directive type="section"
1936 module="core">Location</directive>, ou <directive type="section"
1937 module="core">Files</directive>, cette directive force
1938 l'identification du type MIME des fichiers spécifiés à la valeur de
1939 l'argument <var>type médium</var>. Par exemple, si vous possédez un
1940 répertoire ne contenant que des fichiers GIF, et si vous ne voulez
1941 pas leur ajouter l'extension <code>.gif</code>, vous pouvez utiliser
1948 <p>Notez que cette directive l'emporte sur d'autres associations de
1949 type de médium indirectes définies dans mime.types ou via la
1950 directive <directive module="mod_mime">AddType</directive>.</p>
1952 <p>Vous pouvez aussi annuler toute définition plus générale de
1953 <directive>ForceType</directive> en affectant la valeur
1954 <code>None</code> à l'argument <var>type médium</var> :</p>
1957 # force le type MIME de tous les fichiers à image/gif:<br />
1958 <Location /images><br />
1960 ForceType image/gif<br />
1962 </Location><br />
1964 # mais utilise les méthodes classiques d'attribution du type MIME
1965 # dans le sous-répertoire suivant :<br />
1966 <Location /images/mixed><br />
1968 ForceType None<br />
1973 <p>A la base, cette directive écrase le type de contenu généré pour
1974 les fichiers statiques servis à partir du sytème de fichiers. Pour
1975 les ressources autres que les fichiers statiques pour lesquels le
1976 générateur de réponse spécifie en général un type de contenu, cette
1977 directive est ignorée.</p>
1980 </directivesynopsis>
1982 <name>GprofDir</name>
1983 <description>Répertoire dans lequel écrire les données de profiling
1984 gmon.out.</description>
1985 <syntax>GprofDir <var>/tmp/gprof/</var>|<var>/tmp/gprof/</var>%</syntax>
1986 <contextlist><context>server config</context><context>virtual host</context>
1990 <p>Lorsque le serveur a été compilé avec le support du profiling
1991 gprof, la directive <directive>GprofDir</directive> permet de
1992 spécifier dans quel répertoire les fichiers <code>gmon.out</code>
1993 doivent être écrits lorsque le processus s'arrête. Si l'argument se
1994 termine par un caractère pourcentage ('%'), des sous-répertoires
1995 sont créés pour chaque identifiant de processus.</p>
1997 <p>Cette directive ne fonctionne actuellement qu'avec le MPM
1998 <module>prefork</module>.</p>
2000 </directivesynopsis>
2003 <name>HostnameLookups</name>
2004 <description>Active la recherche DNS sur les adresses IP des
2005 clients</description>
2006 <syntax>HostnameLookups On|Off|Double</syntax>
2007 <default>HostnameLookups Off</default>
2008 <contextlist><context>server config</context><context>virtual
2010 <context>directory</context></contextlist>
2013 <p>Cette directive active la recherche DNS afin de pouvoir
2014 journaliser les nom d'hôtes (et les passer aux programmes CGI et aux
2015 inclusions SSI via la variable <code>REMOTE_HOST</code>). La valeur
2016 <code>Double</code> déclenche une double recherche DNS inverse. En
2017 d'autres termes, une fois la recherche inverse effectuée, on lance
2018 une recherche directe sur le résultat de cette dernière. Au moins
2019 une des adresses IP fournies par la recherche directe doit
2020 correspondre à l'adresse originale (ce que l'on nomme
2021 <code>PARANOID</code> dans la terminologie "tcpwrappers").</p>
2023 <p>Quelle que soit la configuration, lorsqu'on utilise
2024 <module>mod_authz_host</module> pour contrôler l'accès en fonction
2025 du nom d'hôte, une double recherche DNS inverse est effectuée,
2026 sécurité oblige. Notez cependant que le résultat de cette double
2027 recherche n'est en général pas accessible, à moins que vous n'ayez
2028 spécifié <code>HostnameLookups Double</code>. Par exemple, si vous
2029 n'avez spécifié que <code>HostnameLookups On</code>, et si une
2030 requête concerne un objet protégé par des restrictions en fonction
2031 du nom d'hôte, quel que soit le résultat de la double recherche
2032 inverse, les programmes CGI ne recevront que le résultat de la
2033 recherche inverse simple dans la variable
2034 <code>REMOTE_HOST</code>.</p>
2036 <p>La valeur par défaut est <code>Off</code> afin de préserver le
2037 traffic réseau des sites pour lesquels la recherche inverse n'est
2038 pas vraiment nécessaire. Cette valeur par défaut est aussi bénéfique
2039 pour les utilisateurs finaux car il n'ont ainsi pas à subir de temps
2040 d'attente supplémentaires dus aux recherches DNS. Les sites
2041 fortement chargés devraient laisser cette directive à
2042 <code>Off</code>, car les recherches DNS peuvent prendre des temps
2043 très longs. Vous pouvez éventuellement utiliser hors ligne
2044 l'utilitaire <program>logresolve</program>, compilé par défaut dans
2045 le sous-répertoire <code>bin</code> de votre répertoire
2046 d'installation, afin de déterminer les noms d'hôtes associés aux
2047 adresses IP journalisées.</p>
2049 <p>Enfin, si vous avez des <a
2050 href="mod_authz_host.html#reqhost">directives Require à base de
2051 nom</a>, une recherche de nom d'hôte sera effectuée quelle que soit
2052 la définition de la directive <code>HostnameLookups</code>.</p>
2054 </directivesynopsis>
2056 <directivesynopsis type="section">
2058 <description>Contient des directives qui ne s'appliquent que si une
2059 condition est satisfaite au cours du traitement d'une
2060 requête</description>
2061 <syntax><If <var>expression</var>> ... </If></syntax>
2062 <contextlist><context>server config</context><context>virtual
2064 <context>directory</context><context>.htaccess</context>
2066 <override>All</override>
2069 <p>La directive <directive type="section">If</directive> évalue une
2070 expression à la volée, et applique les directives qu'elle contient
2071 si et seulement si l'expression renvoie la valeur "vrai". Par
2075 <If "-z req('Host')">
2078 <p>serait satisfaite pour les requêtes HTTP/1.0 sans en-tête
2079 <var>Host:</var>. Les expressions peuvent contenir différents
2080 opérateurs de type shell pour la comparaison de chaînes
2081 (<code>=</code>, <code>!=</code>, <code><</code>, ...), la
2082 comparaison d'entiers (<code>-eq</code>, <code>-ne</code>, ...), ou
2083 à usages divers (<code>-n</code>, <code>-z</code>, <code>-f</code>,
2084 ...). Les expressions rationnelles sont aussi supportées,</p>
2087 <If "%{QUERY_STRING} =~ /(delete|commit)=.*?elem/">
2090 <p>ainsi que les comparaison de modèles de type shell et de
2091 nombreuses autres opérations. Ces opérations peuvent être effectuées
2092 sur les en-têtes de requêtes (<code>req</code>), les variables
2093 d'environnement (<code>env</code>), et un grand nombre d'autres
2094 propriétés. La documentation complète est disponible dans <a
2095 href="../expr.html">Les expressions dans le serveur HTTP Apache</a>.</p>
2099 <seealso><a href="../expr.html">Les expressions dans le serveur HTTP
2100 Apache</a>, pour une référence complète et d'autres exemples.</seealso>
2101 <seealso><directive type="section" module="core">ElseIf</directive></seealso>
2102 <seealso><directive type="section" module="core">Else</directive></seealso>
2103 <seealso><a href="../sections.html">Comment fonctionnent les sections
2104 <Directory>, <Location> et <Files></a> pour une
2105 explication de la manière dont ces différentes sections se combinent
2106 entre elles à la réception d'une requête. Les
2107 directives <directive type="section">If</directive>, <directive
2108 type="section">ElseIf</directive>, et <directive
2109 type="section">Else</directive> s'appliquent en dernier.</seealso>
2110 </directivesynopsis>
2112 <directivesynopsis type="section">
2113 <name>IfDefine</name>
2114 <description>Contient des directives qui ne s'appliqueront que si un
2115 test retourne "vrai" au démarrage du serveur</description>
2116 <syntax><IfDefine [!]<var>paramètre</var>> ...
2117 </IfDefine></syntax>
2118 <contextlist><context>server config</context><context>virtual
2120 <context>directory</context><context>.htaccess</context>
2122 <override>All</override>
2125 <p>La section <code><IfDefine
2126 <var>test</var>>...</IfDefine></code> permet de
2127 conférer un caractère conditionnel à un ensemble de directives. Les
2128 directives situées à l'intérieur d'une section <directive
2129 type="section">IfDefine</directive> ne s'appliquent que si
2130 <var>test</var> est vrai. Si <var>test</var> est faux, tout ce qui
2131 se trouve entre les balises de début et de fin est ignoré.</p>
2133 <p><var>test</var> peut se présenter sous deux formes :</p>
2136 <li><var>nom paramètre</var></li>
2138 <li><code>!</code><var>nom paramètre</var></li>
2141 <p>Dans le premier cas, les directives situées entre les balises de
2142 début et de fin ne s'appliqueront que si le paramètre nommé <var>nom
2143 paramètre</var> est défini. Le second format inverse le test, et
2144 dans ce cas, les directives ne s'appliqueront que si <var>nom
2145 paramètre</var> n'est <strong>pas</strong> défini.</p>
2147 <p>L'argument <var>nom paramètre</var> est une définition qui peut
2148 être effectuée par la ligne de commande
2149 <program>httpd</program> via le paramètre
2150 <code>-D<var>paramètre</var></code> au démarrage du serveur, ou via la
2151 directive <directive module="core">Define</directive>.</p>
2153 <p>Les sections <directive type="section">IfDefine</directive>
2154 peuvent être imbriquées, ce qui permet d'implémenter un test
2155 multi-paramètres simple. Exemple :</p>
2158 httpd -DReverseProxy -DUseCache -DMemCache ...<br />
2161 <IfDefine ReverseProxy><br />
2163 LoadModule proxy_module modules/mod_proxy.so<br />
2164 LoadModule proxy_http_module modules/mod_proxy_http.so<br />
2165 <IfDefine UseCache><br />
2167 LoadModule cache_module modules/mod_cache.so<br />
2168 <IfDefine MemCache><br />
2170 LoadModule mem_cache_module modules/mod_mem_cache.so<br />
2172 </IfDefine><br />
2173 <IfDefine !MemCache><br />
2175 LoadModule cache_disk_module modules/mod_cache_disk.so<br />
2184 </directivesynopsis>
2186 <directivesynopsis type="section">
2187 <name>IfModule</name>
2188 <description>Contient des directives qui ne s'appliquent qu'en fonction
2189 de la présence ou de l'absence d'un module spécifique</description>
2190 <syntax><IfModule [!]<var>fichier module</var>|<var>identificateur
2191 module</var>> ... </IfModule></syntax>
2192 <contextlist><context>server config</context><context>virtual
2194 <context>directory</context><context>.htaccess</context>
2196 <override>All</override>
2197 <compatibility>Les identificateurs de modules sont disponibles dans les
2198 versions 2.1 et supérieures.</compatibility>
2201 <p>La section <code><IfModule
2202 <var>test</var>>...</IfModule></code> permet de conférer à
2203 des directives un caractère conditionnel basé sur la présence d'un
2204 module spécifique. Les directives situées dans une section
2205 <directive type="section">IfModule</directive> ne s'appliquent que
2206 si <var>test</var> est vrai. Si <var>test</var> est faux, tout ce
2207 qui se trouve entre les balises de début et de fin est ignoré.</p>
2209 <p><var>test</var> peut se présenter sous deux formes :</p>
2212 <li><var>module</var></li>
2214 <li>!<var>module</var></li>
2217 <p>Dans le premier cas, les directives situées entre les balises de
2218 début et de fin ne s'appliquent que si le module <var>module</var>
2219 est présent -- soit compilé avec le binaire Apache httpd, soit chargé
2220 dynamiquement via la directive <directive module="mod_so"
2221 >LoadModule</directive>. Le second format inverse le test, et dans
2222 ce cas, les directives ne s'appliquent que si <var>module</var>
2223 n'est <strong>pas</strong> présent.</p>
2225 <p>L'argument <var>module</var> peut contenir soit l'identificateur
2226 du module, soit le nom du fichier source du module. Par exemple,
2227 <code>rewrite_module</code> est un identificateur et
2228 <code>mod_rewrite.c</code> le nom du fichier source
2229 correspondant. Si un module comporte plusieurs fichiers sources,
2230 utilisez le nom du fichier qui contient la chaîne de caractères
2231 <code>STANDARD20_MODULE_STUFF</code>.</p>
2233 <p>Les sections <directive type="section">IfModule</directive>
2234 peuvent être imbriquées, ce qui permet d'implémenter des tests
2235 multi-modules simples.</p>
2237 <note>Cette section ne doit être utilisée que si votre fichier de
2238 configuration ne fonctionne qu'en fonction de la présence ou de
2239 l'absence d'un module spécifique. D'une manière générale, il n'est
2240 pas nécessaire de placer les directives à l'intérieur de sections
2241 <directive type="section">IfModule</directive>.</note>
2243 </directivesynopsis>
2246 <name>Include</name>
2247 <description>Inclut d'autres fichiers de configuration dans un des
2248 fichiers de configuration du serveur</description>
2249 <syntax>Include <var>chemin-fichier</var>|<var>chemin-répertoire</var>|<var>wildcard</var></syntax>
2250 <contextlist><context>server config</context><context>virtual
2252 <context>directory</context>
2254 <compatibility>Utilisation des caractères génériques dans la partie nom
2255 de fichier depuis la version 2.0.41, et dans la partie chemin depuis la
2256 version 2.3.6</compatibility>
2259 <p>Cette directive permet l'inclusion d'autres fichiers de
2260 configuration dans un des fichiers de configuration du serveur.</p>
2262 <p>On peut utiliser des caractères génériques de style Shell
2263 (<code>fnmatch()</code>) aussi bien dans la partie nom de fichier du
2264 chemin que dans la partie répertoires pour inclure plusieurs
2266 seule fois, selon leur ordre alphabétique. De plus, si la directive
2267 <directive>Include</directive> pointe vers un répertoire, Apache
2268 httpd inclura tous les fichiers de ce répertoire et de tous ces
2269 sous-répertoires. L'inclusion de répertoires entiers est cependant
2270 déconseillée, car il est fréquent d'oublier des fichiers
2271 temporaires dans un répertoire, ce qui causerait une erreur
2272 <program>httpd</program> en cas d'inclusion. Pour inclure des
2273 fichiers qui correspondent à un certain modèle, comme *.conf par
2274 exemple, nous vous recommandons d'utiliser plutôt la syntaxe avec
2275 caractères génériques comme ci-dessous.</p>
2277 <p>La directive <directive module="core">Include</directive>
2278 <strong>échouera avec un code d'erreur</strong> si une expression
2279 contenant des caractères génériques ne correspond à aucun fichier.
2280 Pour ignorer les expressions contenant des caractères génériques ne
2281 correspondant à aucun fichier, utilisez la directive <directive
2282 module="core">IncludeOptional</directive>.</p>
2284 <p>Le chemin fichier spécifié peut être soit un chemin absolu, soit
2285 un chemin relatif au répertoire défini par la directive <directive
2286 module="core">ServerRoot</directive>.</p>
2291 Include /usr/local/apache2/conf/ssl.conf<br />
2292 Include /usr/local/apache2/conf/vhosts/*.conf
2295 <p>ou encore, avec des chemins relatifs au répertoire défini par la
2296 directive <directive module="core">ServerRoot</directive> :</p>
2299 Include conf/ssl.conf<br />
2300 Include conf/vhosts/*.conf
2303 <p>On peut aussi insérer des caractères génériques dans la partie
2304 répertoires du chemin. Dans l'exemple suivant, la directive
2305 échouera si aucun sous-répertoire de conf/vhosts ne contient au
2306 moins un fichier *.conf :</p>
2309 Include conf/vhosts/*/*.conf
2312 <p>Par contre, dans l'exemple suivant, la directive sera simplement
2313 ignorée si aucun sous-répertoire de conf/vhosts ne contient au
2314 moins un fichier *.conf :</p>
2317 IncludeOptional conf/vhosts/*/*.conf
2322 <seealso><directive module="core">IncludeOptional</directive></seealso>
2323 <seealso><program>apachectl</program></seealso>
2324 </directivesynopsis>
2327 <name>IncludeOptional</name>
2328 <description>Inclusion de fichiers dans le fichier de configuration</description>
2329 <syntax>IncludeOptional
2330 <var>chemin-fichier</var>|<var>chemin-répertoire</var>|<var>wildcard</var></syntax>
2331 <contextlist><context>server config</context><context>virtual host</context>
2332 <context>directory</context>
2334 <compatibility>Disponible à partir de la version 2.3.6 du serveur HTTP
2335 Apache</compatibility>
2338 <p>Cette directive permet d'inclure des fichiers dans les fichiers
2339 de configuration du serveur. Elle fonctionne de manière identique à
2340 la directive <directive module="core">Include</directive>, à
2341 l'exception du fait que si l'expression avec caractères génériques
2342 wilcard ne correspond à aucun fichier ou répertoire, elle sera
2343 ignorée silencieusement au lieu de causer une erreur.</p>
2347 <seealso><directive module="core">Include</directive></seealso>
2348 <seealso><program>apachectl</program></seealso>
2349 </directivesynopsis>
2352 <name>KeepAlive</name>
2353 <description>Active les connexions HTTP persistantes</description>
2354 <syntax>KeepAlive On|Off</syntax>
2355 <default>KeepAlive On</default>
2356 <contextlist><context>server config</context><context>virtual
2361 <p>L'extension Keep-Alive de HTTP/1.0 et l'implémentation des
2362 connexions persistantes dans HTTP/1.1 ont rendu possibles des
2363 sessions HTTP de longue durée, ce qui permet de transmettre
2364 plusieurs requêtes via la même connexion TCP. Dans certains cas, le
2365 gain en rapidité pour des documents comportant de nombreuses images
2366 peut atteindre 50%. Pour activer les connexions persistantes,
2367 définissez <code>KeepAlive On</code>.</p>
2369 <p>Pour les clients HTTP/1.0, les connexions persistantes ne seront
2370 mises en oeuvre que si elles ont été spécialement demandées par un
2371 client. De plus, une connexion persistante avec un client HTTP/1.0
2372 ne peut être utilisée que si la taille du contenu est connue
2373 d'avance. Ceci implique que les contenus dynamiques comme les
2374 sorties CGI, les pages SSI, et les listings de répertoires générés
2375 par le serveur n'utiliseront en général pas les connexions
2376 persistantes avec les clients HTTP/1.0. Avec les clients HTTP/1.1,
2377 les connexions persistantes sont utilisées par défaut, sauf
2378 instructions contraires. Si le client le demande, le transfert par
2379 tronçons de taille fixe (chunked encoding) sera utilisé afin de
2380 transmettre un contenu de longueur inconnue via une connexion
2383 <p>Lorsqu'un client utilise une connexion persistante, elle comptera
2384 pour une seule requête pour la directive <directive
2385 module="mpm_common">MaxConnectionsPerChild</directive>, quel
2386 que soit le nombre de requêtes transmises via cette connexion.</p>
2389 <seealso><directive module="core">MaxKeepAliveRequests</directive></seealso>
2390 </directivesynopsis>
2393 <name>KeepAliveTimeout</name>
2394 <description>Durée pendant laquelle le serveur va attendre une requête
2395 avant de fermer une connexion persistante</description>
2396 <syntax>KeepAliveTimeout <var>nombre</var>[ms]</syntax>
2397 <default>KeepAliveTimeout 5</default>
2398 <contextlist><context>server config</context><context>virtual
2401 <compatibility>La spécification d'une valeur en millisecondes est
2402 possible depuis les versions 2.3.2 et supérieures d'Apache httpd</compatibility>
2405 <p>Le nombre de secondes pendant lesquelles Apache httpd va attendre une
2406 requête avant de fermer la connexion. Le délai peut être défini en
2407 millisecondes en suffixant sa valeur par ms. La valeur du délai
2408 spécifiée par la directive <directive
2409 module="core">Timeout</directive> s'applique dès qu'une requête a
2410 été reçue.</p>
2412 <p>Donner une valeur trop élévée à
2413 <directive>KeepAliveTimeout</directive> peut induire des problèmes
2414 de performances sur les serveurs fortement chargés. Plus le délai
2415 est élévé, plus nombreux seront les processus serveur en attente de
2416 requêtes de la part de clients inactifs.</p>
2418 <p>Dans un contexte de serveur virtuel à base de nom, c'est
2419 la valeur de la paire adresse IP/port du serveur virtuel qui
2420 correspond le mieux qui sera utilisée.</p>
2422 </directivesynopsis>
2424 <directivesynopsis type="section">
2426 <description>Limite les contrôles d'accès que la section contient à
2427 certaines méthodes HTTP</description>
2428 <syntax><Limit <var>méthode</var> [<var>méthode</var>] ... > ...
2429 </Limit></syntax>
2430 <contextlist><context>directory</context><context>.htaccess</context>
2432 <override>AuthConfig, Limit</override>
2435 <p>Les contrôles d'accès s'appliquent normalement à
2436 <strong>toutes</strong> les méthodes d'accès, et c'est en général le
2437 comportement souhaité. <strong>Dans le cas général, les directives
2438 de contrôle d'accès n'ont pas à être placées dans une section
2439 <directive type="section">Limit</directive>.</strong></p>
2441 <p>La directive <directive type="section">Limit</directive> a pour
2442 but de limiter les effets des contrôles d'accès aux méthodes HTTP
2443 spécifiées. Pour toutes les autres méthodes, les restrictions
2444 d'accès contenues dans la section <directive
2445 type="section">Limit</directive> <strong>n'auront aucun
2446 effet</strong>. L'exemple suivant n'applique les contrôles d'accès
2447 qu'aux méthodes <code>POST</code>, <code>PUT</code>, et
2448 <code>DELETE</code>, en laissant les autres méthodes sans protection
2452 <Limit POST PUT DELETE><br />
2454 Require valid-user<br />
2459 <p>La liste des noms de méthodes peut contenir une ou plusieurs
2460 valeurs parmi les suivantes : <code>GET</code>, <code>POST</code>,
2461 <code>PUT</code>, <code>DELETE</code>, <code>CONNECT</code>,
2462 <code>OPTIONS</code>, <code>PATCH</code>, <code>PROPFIND</code>,
2463 <code>PROPPATCH</code>, <code>MKCOL</code>, <code>COPY</code>,
2464 <code>MOVE</code>, <code>LOCK</code>, et <code>UNLOCK</code>.
2465 <strong>Le nom de méthode est sensible à la casse.</strong> Si la
2466 valeur <code>GET</code> est présente, les requêtes <code>HEAD</code>
2467 seront aussi concernées. La méthode <code>TRACE</code> ne peut pas
2468 être limitée (voir la directive <directive
2469 module="core">TraceEnable</directive>).</p>
2471 <note type="warning">Une section <directive
2472 type="section">LimitExcept</directive> doit toujours être préférée à
2473 une section <directive type="section">Limit</directive> pour la
2474 restriction d'accès, car une section <directive type="section"
2475 module="core">LimitExcept</directive> fournit une protection contre
2476 les méthodes arbitraires.</note>
2478 <p>Les directives <directive type="section">Limit</directive> et
2479 <directive type="section" module="core">LimitExcept</directive>
2480 peuvent être imbriquées. Dans ce cas, pour chaque niveau des
2481 directives <directive type="section">Limit</directive> ou <directive
2482 type="section" module="core">LimitExcept</directive>, ces dernières
2483 doivent restreindre l'accès pour les méthodes auxquelles les
2484 contrôles d'accès s'appliquent.</p>
2486 <note type="warning">Lorsqu'on utilise les directives <directive
2487 type="section">Limit</directive> ou <directive
2488 type="section">LimitExcept</directive> avec la directive <directive
2489 module="mod_authz_core">Require</directive>, la première directive
2490 <directive module="mod_authz_core">Require</directive> dont la
2491 condition est satisfaite autorise la requête, sans tenir compte de
2492 la présence d'autres directives <directive
2493 module="mod_authz_core">Require</directive>.</note>
2495 <p>Par exemple, avec la configuration suivante, tous les
2496 utilisateurs seront autorisés à effectuer des requêtes
2497 <code>POST</code>, et la directive <code>Require group
2498 editors</code> sera ignorée dans tous les cas :</p>
2501 <LimitExcept GET>
2505 </LimitExcept><br />
2508 Require group editors
2513 </directivesynopsis>
2515 <directivesynopsis type="section">
2516 <name>LimitExcept</name>
2517 <description>Applique les contrôles d'accès à toutes les méthodes HTTP,
2518 sauf celles qui sont spécifiées</description>
2519 <syntax><LimitExcept <var>méthode</var> [<var>méthode</var>] ... > ...
2520 </LimitExcept></syntax>
2521 <contextlist><context>directory</context><context>.htaccess</context>
2523 <override>AuthConfig, Limit</override>
2526 <p><directive type="section">LimitExcept</directive> et
2527 <code></LimitExcept></code> permettent de regrouper des
2528 directives de contrôle d'accès qui s'appliqueront à toutes les
2529 méthodes d'accès HTTP qui ne font <strong>pas</strong> partie de la
2530 liste des arguments ; en d'autres termes, elles ont un comportement
2531 opposé à celui de la section <directive type="section"
2532 module="core">Limit</directive>, et on peut les utiliser pour
2533 contrôler aussi bien les méthodes standards que les méthodes non
2534 standards ou non reconnues. Voir la documentation de la section
2535 <directive module="core" type="section">Limit</directive> pour plus
2536 de détails.</p>
2538 <p>Par exemple :</p>
2541 <LimitExcept POST GET><br />
2543 Require valid-user<br />
2545 </LimitExcept>
2549 </directivesynopsis>
2552 <name>LimitInternalRecursion</name>
2553 <description>Détermine le nombre maximal de redirections internes et de
2554 sous-requêtes imbriquées</description>
2555 <syntax>LimitInternalRecursion <var>nombre</var> [<var>nombre</var>]</syntax>
2556 <default>LimitInternalRecursion 10</default>
2557 <contextlist><context>server config</context><context>virtual
2560 <compatibility>Disponible à partir de la version 2.0.47 d'Apache httpd</compatibility>
2563 <p>Une redirection interne survient, par exemple, quand on utilise
2564 la directive <directive module="mod_actions">Action</directive> qui
2565 redirige en interne la requête d'origine vers un script CGI. Une
2566 sous-requête est le mécanisme qu'utilise Apache httpd pour déterminer ce
2567 qui se passerait pour un URI s'il faisait l'objet d'une requête. Par
2568 exemple, <module>mod_dir</module> utilise les sous-requêtes pour
2569 rechercher les fichiers listés dans la directive <directive
2570 module="mod_dir">DirectoryIndex</directive>.</p>
2572 <p>La directive <directive>LimitInternalRecursion</directive> permet
2573 d'éviter un crash du serveur dû à un bouclage infini de redirections
2574 internes ou de sous-requêtes. De tels bouclages sont dus en général
2575 à des erreurs de configuration.</p>
2577 <p>La directive accepte, comme arguments, deux limites qui sont
2578 évaluées à chaque requête. Le premier <var>nombre</var> est le
2579 nombre maximum de redirections internes qui peuvent se succéder. Le
2580 second <var>nombre</var> détermine la profondeur d'imbrication
2581 maximum des sous-requêtes. Si vous ne spécifiez qu'un seul
2582 <var>nombre</var>, il sera affecté aux deux limites.</p>
2584 <example><title>Exemple</title>
2585 LimitInternalRecursion 5
2588 </directivesynopsis>
2591 <name>LimitRequestBody</name>
2592 <description>limite la taille maximale du corps de la requête HTTP
2593 envoyée par le client</description>
2594 <syntax>LimitRequestBody <var>octets</var></syntax>
2595 <default>LimitRequestBody 0</default>
2596 <contextlist><context>server config</context><context>virtual
2598 <context>directory</context><context>.htaccess</context>
2600 <override>All</override>
2603 <p>Cette directive spécifie la taille maximale autorisée pour le
2604 corps d'une requête ; la valeur de l'argument <var>octets</var> va
2605 de 0 (pour une taille illimitée), à 2147483647 (2Go). Voir la note
2606 ci-dessous pour la limite d'applicabilité aux requêtes mandatées.</p>
2608 <p>La directive <directive>LimitRequestBody</directive> permet de
2609 définir une limite pour la taille maximale autorisée du corps d'une
2610 requête HTTP en tenant compte du contexte dans lequel la directive
2611 a été placée (c'est à dire au niveau du serveur, d'un répertoire,
2612 d'un fichier ou d'une localisation). Si la requête du client dépasse
2613 cette limite, le serveur répondra par un message d'erreur et ne
2614 traitera pas la requête. La taille du corps d'une requête normale va
2615 varier de manière importante en fonction de la nature de la
2616 ressource et des méthodes autorisées pour cette dernière. Les
2617 scripts CGI utilisent souvent le corps du message pour extraire les
2618 informations d'un formulaire. Les implémentations de la méthode
2619 <code>PUT</code> nécessitent une valeur au moins aussi élevée que la
2620 taille maximale des représentations que le serveur désire accepter
2621 pour cette ressource.</p>
2623 <p>L'administrateur du serveur peut utiliser cette directive pour
2624 contrôler plus efficacement les comportements anormaux des requêtes
2625 des clients, ce qui lui permettra de prévenir certaines formes
2626 d'attaques par déni de service.</p>
2628 <p>Si par exemple, vous autorisez le chargement de fichiers vers une
2629 localisation particulière, et souhaitez limiter la taille des
2630 fichiers chargés à 100Ko, vous pouvez utiliser la directive suivante
2634 LimitRequestBody 102400
2637 <note><p>Pour une description détaillée de la manière dont cette
2638 directive est interprétée par les requêtes mandatées, voir la
2639 documentation du module <module>mod_proxy</module>.</p>
2643 </directivesynopsis>
2646 <name>LimitRequestFields</name>
2647 <description>Limite le nombre de champs d'en-tête autorisés dans une
2648 requête HTTP</description>
2649 <syntax>LimitRequestFields <var>nombre</var></syntax>
2650 <default>LimitRequestFields 100</default>
2651 <contextlist><context>server config</context><context>virtual host</context></contextlist>
2654 <p><var>nombre</var> est un entier de 0 (nombre de champs illimité)
2655 à 32767. La valeur par défaut est définie à la compilation par la
2656 constante <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> (100 selon la
2659 <p>La directive <directive>LimitRequestFields</directive> permet à
2660 l'administrateur du serveur de modifier le nombre maximum de champs
2661 d'en-tête autorisés dans une requête HTTP. Pour un serveur, cette
2662 valeur doit être supérieure au nombre de champs qu'une requête
2663 client normale peut contenir. Le nombre de champs d'en-tête d'une
2664 requête qu'un client utilise dépasse rarement 20, mais ce nombre
2665 peut varier selon les implémentations des clients, et souvent en
2666 fonction des extensions que les utilisateurs configurent dans leurs
2667 navigateurs pour supporter la négociation de contenu détaillée. Les
2668 extensions HTTP optionnelles utilisent souvent les
2669 champs d'en-tête des requêtes.</p>
2671 <p>L'administrateur du serveur peut utiliser cette directive pour
2672 contrôler plus efficacement les comportements anormaux des requêtes
2673 des clients, ce qui lui permettra de prévenir certaines formes
2674 d'attaques par déni de service. La valeur spécifiée doit être
2675 augmentée si les clients standards reçoivent une erreur du serveur
2676 indiquant que la requête comportait un nombre d'en-têtes trop
2679 <p>Par exemple :</p>
2682 LimitRequestFields 50
2685 <note type="warning"><title>Avertissement</title>
2686 <p>Dans le cas des serveurs virtuels à base de noms, la valeur de
2687 cette directive est extraite du serveur virtuel par défaut (le
2688 premier de la liste) pour la paire adresse IP/port.</p>
2692 </directivesynopsis>
2695 <name>LimitRequestFieldSize</name>
2696 <description>Dédinit la taille maximale autorisée d'un en-tête de
2697 requête HTTP</description>
2698 <syntax>LimitRequestFieldSize <var>octets</var></syntax>
2699 <default>LimitRequestFieldSize 8190</default>
2700 <contextlist><context>server config</context><context>virtual host</context></contextlist>
2703 <p>Cette directive permet de définir le nombre maximum
2704 d'<var>octets</var> autorisés dans un en-tête de requête HTTP.</p>
2706 <p>La directive <directive>LimitRequestFieldSize</directive> permet
2707 à l'administrateur du serveur de définir la taille
2708 maximale autorisée d'un en-tête de requête HTTP. Pour un serveur,
2709 cette valeur doit être suffisamment grande pour contenir tout
2710 en-tête d'une requête client normale. La taille d'un champ d'en-tête
2711 de requête normal va varier selon les implémentations des clients,
2712 et en fonction des extensions que les utilisateurs
2713 configurent dans leurs navigateurs pour supporter la négociation de
2714 contenu détaillée. Les en-têtes d'authentification SPNEGO peuvent
2715 atteindre une taille de 12392 octets.</p>
2717 <p>>L'administrateur du serveur peut utiliser cette directive pour
2718 contrôler plus efficacement les comportements anormaux des requêtes
2719 des clients, ce qui lui permettra de prévenir certaines formes
2720 d'attaques par déni de service.</p>
2722 <p>Par exemple ::</p>
2725 LimitRequestFieldSize 4094
2728 <note>Dans des conditions normales, la valeur par défaut de cette
2729 directive ne doit pas être modifiée. En outre, vous ne
2730 pouvez pas spécifier une valeur supérieure à 8190 sans modifier le
2731 code source et recompiler.</note>
2733 <note type="warning"><title>Avertissement</title>
2734 <p>Dans le cas des serveurs virtuels à base de noms, la valeur de
2735 cette directive est extraite du serveur virtuel par défaut (le
2736 premier de la liste) pour lequel la paire adresse IP/port
2737 correspond le mieux.</p>
2740 </directivesynopsis>
2743 <name>LimitRequestLine</name>
2744 <description>Définit la taille maximale d'une ligne de requête
2746 <syntax>LimitRequestLine <var>octets</var></syntax>
2747 <default>LimitRequestLine 8190</default>
2748 <contextlist><context>server config</context><context>virtual host</context></contextlist>
2751 <p>Cette directive permet de définir la taille maximale autorisée
2752 pour une ligne de requête HTTP en <var>octets</var>.</p>
2754 <p>La directive <directive>LimitRequestLine</directive> permet à
2755 l'administrateur du serveur de définir la taille
2756 maximale autorisée d'une ligne de requête HTTP client. Comme une
2757 requête comporte une méthode HTTP, un URI, et une version de
2758 protocole, la directive <directive>LimitRequestLine</directive>
2759 impose une restriction sur la longueur maximale autorisée pour un
2760 URI dans une requête au niveau du serveur. Pour un serveur, cette
2761 valeur doit être suffisamment grande pour référencer les noms de
2762 toutes ses ressources, y compris toutes informations pouvant être
2763 ajoutées dans la partie requête d'une méthode <code>GET</code>.</p>
2765 <p>L'administrateur du serveur peut utiliser cette directive pour
2766 contrôler plus efficacement les comportements anormaux des requêtes
2767 des clients, ce qui lui permettra de prévenir certaines formes
2768 d'attaques par déni de service.</p>
2770 <p>Par exemple :</p>
2773 LimitRequestLine 4094
2776 <note>Dans des conditions normales, la valeur par défaut de cette
2777 directive ne doit pas être modifiée. En outre, vous ne
2778 pouvez pas spécifier une valeur supérieure à 8190 sans modifier le
2779 code source et recompiler.</note>
2781 <note type="warning"><title>Avertissement</title>
2782 <p>Dans le cas des serveurs virtuels à base de noms, la valeur de
2783 cette directive est extraite du serveur virtuel par défaut (le
2784 premier de la liste) pour lequel la paire adresse IP/port
2785 correspond le mieux.</p>
2789 </directivesynopsis>
2792 <name>LimitXMLRequestBody</name>
2793 <description>Définit la taille maximale du corps d'une requête au format
2795 <syntax>LimitXMLRequestBody <var>octets</var></syntax>
2796 <default>LimitXMLRequestBody 1000000</default>
2797 <contextlist><context>server config</context><context>virtual
2799 <context>directory</context><context>.htaccess</context></contextlist>
2800 <override>All</override>
2803 <p>Taille maximale (en octets) du corps d'une requête au format XML.
2804 Une valeur de <code>0</code> signifie qu'aucune limite n'est
2810 LimitXMLRequestBody 0
2814 </directivesynopsis>
2816 <directivesynopsis type="section">
2817 <name>Location</name>
2818 <description>N'applique les directives contenues qu'aux URLs
2819 spécifiées</description>
2820 <syntax><Location
2821 <var>chemin URL</var>|<var>URL</var>> ... </Location></syntax>
2822 <contextlist><context>server config</context><context>virtual
2827 <p>La directive <directive type="section">Location</directive>
2828 limite la portée des directives contenues aux URLs définies par
2829 l'argument URL. Elle est similaire à la directive <directive
2830 type="section" module="core">Directory</directive>, et marque le
2831 début d'une section qui se termine par une directive
2832 <code></Location></code>. Les sections <directive
2833 type="section">Location</directive> sont traitées selon l'ordre dans
2834 lequel elles apparaissent dans le fichier de configuration, mais
2835 après les sections <directive
2836 type="section" module="core">Directory</directive> et la lecture des
2837 fichiers <code>.htaccess</code>, et après les sections <directive
2838 type="section" module="core">Files</directive>.</p>
2840 <p>Les sections <directive type="section">Location</directive>
2841 agissent complètement en dehors du système de fichiers. Ceci a de
2842 nombreuses conséquences. Parmi les plus importantes, on ne doit pas
2843 utiliser les sections <directive type="section">Location</directive>
2844 pour contrôler l'accès aux répertoires du système de fichiers. Comme
2845 plusieurs URLs peuvent correspondre au même répertoire du système de
2846 fichiers, un tel contrôle d'accès pourrait être contourné.</p>
2848 <p>Les directives que contient cette section seront appliquées aux
2849 requêtes si la partie chemin de l'URL satisfait à l'un au moins de
2850 ces critères :
2853 <li>Le chemin spécifié correspond exactement à la partie chemin de
2856 <li>Le chemin spécifié, qui se termine par un slash, est un
2857 préfixe de la partie chemin de l'URL (traité comme une racine du
2860 <li>Le chemin spécifié, si on lui ajoute un slash de fin, est un
2861 préfixe de la partie chemin de l'URL (aussi traité comme une racine du
2866 Dans l'exemple ci-dessous, où aucun slash de fin n'est utilisé, les
2867 directives contenues dans la section s'appliqueront à /private1,
2868 /private1/ et /private1/file.txt, mais pas à /private1other.
2871 <Location /private1>
2875 De même, dans l'exemple ci-dessous, où l'on utilise un slash de fin, les
2876 directives contenues dans la section s'appliqueront à /private2/ et
2877 à /private2/file.txt, mais pas à /private2other.
2880 <Location /private2<em>/</em>>
2884 <note><title>Quand utiliser la section <directive
2885 type="section">Location</directive></title>
2887 <p>Vous pouvez utiliser une section <directive
2888 type="section">Location</directive> pour appliquer des directives à
2889 des contenus situés en dehors du système de fichiers. Pour les
2890 contenus situés à l'intérieur du système de fichiers, utilisez
2891 plutôt les sections <directive
2892 type="section" module="core">Directory</directive> et <directive
2893 type="section" module="core">Files</directive>. <code><Location
2894 /></code> constitue une exception et permet d'appliquer aisément
2895 une configuration à l'ensemble du serveur.</p>
2898 <p>Pour toutes les requêtes originales (non mandatées), l'argument
2899 URL est un chemin d'URL de la forme
2900 <code>/chemin/</code>. <em>Aucun protocole, nom d'hôte, port, ou chaîne
2901 de requête ne doivent apparaître.</em> Pour les requêtes mandatées, l'URL
2902 spécifiée doit être de la forme
2903 <code>protocole://nom_serveur/chemin</code>, et vous devez inclure
2904 le préfixe.</p>
2906 <p>L'URL peut contenir des caractères génériques. Dans une chaîne
2907 avec caractères génériques, <code>?</code> correspond à un caractère
2908 quelconque, et <code>*</code> à toute chaîne de caractères. Les
2909 caractères génériques ne peuvent pas remplacer un / dans le chemin
2912 <p>On peut aussi utiliser les <glossary ref="regex">Expressions
2913 rationnelles</glossary>, moyennant l'addition d'un caractère
2914 <code>~</code>. Par exemple :</p>
2917 <Location ~ "/(extra|special)/data">
2920 <p>concernerait les URLs contenant les sous-chaîne
2921 <code>/extra/data</code> ou <code>/special/data</code>. La directive
2922 <directive type="section" module="core">LocationMatch</directive>
2923 présente un comportement identique à la version avec expressions
2924 rationnelles de la directive <directive
2925 type="section">Location</directive>, et son utilisation est
2926 préférable à l'utilisation de cette dernière pour la simple raison
2927 qu'il est difficile de distinguer <code>~</code> de <code>-</code>
2928 dans la plupart des fontes.</p>
2930 <p>La directive <directive type="section">Location</directive>
2931 s'utilise principalement avec la directive <directive
2932 module="core">SetHandler</directive>. Par exemple, pour activer les
2933 requêtes d'état, mais ne les autoriser que depuis des navigateurs
2934 appartenant au domaine <code>example.com</code>, vous pouvez
2938 <Location /status><br />
2940 SetHandler server-status<br />
2941 Require host example.com<br />
2946 <note><title>Note à propos du slash (/)</title>
2947 <p>La signification du caractère slash dépend de l'endroit où il
2948 se trouve dans l'URL. Les utilisateurs peuvent être habitués à
2949 son comportement dans le système de fichiers où plusieurs slashes
2950 successifs sont souvent réduits à un slash unique (en d'autres
2951 termes, <code>/home///foo</code> est identique à
2952 <code>/home/foo</code>). Dans l'espace de nommage des URLs, ce
2953 n'est cependant pas toujours le cas. Pour la directive <directive
2954 type="section" module="core">LocationMatch</directive> et la
2955 version avec expressions rationnelles de la directive <directive
2956 type="section">Location</directive>, vous devez spécifier
2957 explicitement les slashes multiples si telle est votre
2960 <p>Par exemple, <code><LocationMatch ^/abc></code> va
2961 correspondre à l'URL <code>/abc</code> mais pas à l'URL <code>
2962 //abc</code>. La directive <directive type="section"
2963 >Location</directive> sans expression rationnelle se comporte de
2964 la même manière lorsqu'elle est utilisée pour des requêtes
2965 mandatées. Par contre, lorsque la directive <directive
2966 type="section">Location</directive> sans expression rationnelle
2967 est utilisée pour des requêtes non mandatées, elle fera
2968 correspondre implicitement les slashes multiples à des slashes
2969 uniques. Par exemple, si vous spécifiez <code><Location
2970 /abc/def></code>, une requête de la forme
2971 <code>/abc//def</code> correspondra.</p>
2974 <seealso><a href="../sections.html">Comment fonctionnent les sections
2975 <Directory>, <Location> et <Files></a> pour une
2976 explication de la manière dont ces différentes sections se combinent
2977 entre elles à la réception d'une requête.</seealso>
2978 </directivesynopsis>
2980 <directivesynopsis type="section">
2981 <name>LocationMatch</name>
2982 <description>N'applique les directives contenues qu'aux URLs
2983 correspondant à une expression rationnelle</description>
2984 <syntax><LocationMatch
2985 <var>regex</var>> ... </LocationMatch></syntax>
2986 <contextlist><context>server config</context><context>virtual
2991 <p>La directive <directive type="section">LocationMatch</directive>
2992 limite la portée des directives contenues à l'URL spécifiée, de
2993 manière identique à la directive <directive module="core"
2994 type="section">Location</directive>. Mais son argument permettant de
2995 spécifier les URLs concernées est une <glossary
2996 ref="regex">expression rationnelle</glossary> au lieu d'une simple
2997 chaîne de caractères. Par exemple :</p>
3000 <LocationMatch "/(extra|special)/data">
3003 <p>correspondrait à toute URL contenant les sous-chaînes
3004 <code>/extra/data</code> ou <code>/special/data</code>.</p>
3006 <seealso><a href="../sections.html">Comment fonctionnent les sections
3007 <Directory>, <Location> et <Files></a> pour une
3008 explication de la manière dont ces différentes sections se combinent
3009 entre elles à la réception d'une requête.</seealso>
3010 </directivesynopsis>
3013 <name>LogLevel</name>
3014 <description>Contrôle la verbosité du journal des erreurs</description>
3015 <syntax>LogLevel [<var>module</var>:]<var>niveau</var>
3016 [<var>module</var>:<var>niveau</var>] ...
3018 <default>LogLevel warn</default>
3019 <contextlist><context>server config</context><context>virtual
3020 host</context><context>directory</context>
3022 <compatibility>La configuration du niveau de journalisation par module
3023 et par répertoire est disponible depuis la version 2.3.6 du serveur HTTP
3024 Apache</compatibility>
3026 <p>La directive <directive>LogLevel</directive> permet d'ajuster la
3027 verbosité des messages enregistrés dans les journaux d'erreur (voir
3028 la directive <directive module="core">ErrorLog</directive>
3029 directive). Les <var>niveau</var>x disponibles sont présentés
3030 ci-après, par ordre de criticité décroissante :</p>
3033 <columnspec><column width=".2"/><column width=".3"/><column width=".5"/>
3036 <th><strong>Niveau</strong> </th>
3038 <th><strong>Description</strong> </th>
3040 <th><strong>Exemple</strong> </th>
3044 <td><code>emerg</code> </td>
3046 <td>Urgences - le système est inutilisable.</td>
3048 <td>"Child cannot open lock file. Exiting"</td>
3052 <td><code>alert</code> </td>
3054 <td>Des mesures doivent être prises immédiatement.</td>
3056 <td>"getpwuid: couldn't determine user name from uid"</td>
3060 <td><code>crit</code> </td>
3062 <td>Conditions critiques.</td>
3064 <td>"socket: Failed to get a socket, exiting child"</td>
3068 <td><code>error</code> </td>
3072 <td>"Premature end of script headers"</td>
3076 <td><code>warn</code> </td>
3078 <td>Avertissements.</td>
3080 <td>"child process 1234 did not exit, sending another
3085 <td><code>notice</code> </td>
3087 <td>Evènement important mais normal.</td>
3089 <td>"httpd: caught SIGBUS, attempting to dump core in
3094 <td><code>info</code> </td>
3096 <td>Informations.</td>
3098 <td>"Server seems busy, (you may need to increase
3099 StartServers, or Min/MaxSpareServers)..."</td>
3103 <td><code>debug</code> </td>
3105 <td>Messages de débogage.</td>
3107 <td>"Opening config file ..."</td>
3110 <td><code>trace1</code> </td>
3112 <td>Messages de traces</td>
3114 <td>"proxy: FTP: control connection complete"</td>
3117 <td><code>trace2</code> </td>
3119 <td>Messages de traces</td>
3121 <td>"proxy: CONNECT: sending the CONNECT request to the remote proxy"</td>
3124 <td><code>trace3</code> </td>
3126 <td>Messages de traces</td>
3128 <td>"openssl: Handshake: start"</td>
3131 <td><code>trace4</code> </td>
3133 <td>Messages de traces</td>
3135 <td>"read from buffered SSL brigade, mode 0, 17 bytes"</td>
3138 <td><code>trace5</code> </td>
3140 <td>Messages de traces</td>
3142 <td>"map lookup FAILED: map=rewritemap key=keyname"</td>
3145 <td><code>trace6</code> </td>
3147 <td>Messages de traces</td>
3149 <td>"cache lookup FAILED, forcing new map lookup"</td>
3152 <td><code>trace7</code> </td>
3154 <td>Messages de traces, enregistrement d'une grande quantité de
3157 <td>"| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"</td>
3160 <td><code>trace8</code> </td>
3162 <td>Messages de traces, enregistrement d'une grande quantité de
3165 <td>"| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"</td>
3169 <p>Lorsqu'un niveau particulier est spécifié, les messages de tous
3170 les autres niveaux de criticité supérieure seront aussi enregistrés.
3171 <em>Par exemple</em>, si <code>LogLevel info</code> est spécifié,
3172 les messages de niveaux <code>notice</code> et <code>warn</code>
3173 seront aussi émis.</p>
3175 <p>Il est recommandé d'utiliser un niveau <code>crit</code> ou
3176 inférieur.</p>
3178 <p>Par exemple :</p>
3184 <note><title>Note</title>
3185 <p>Si la journalisation s'effectue directement dans un fichier,
3186 les messages de niveau <code>notice</code> ne peuvent pas être
3187 supprimés et sont donc toujours journalisés. Cependant, ceci ne
3188 s'applique pas lorsque la journalisation s'effectue vers
3189 <code>syslog</code>.</p>
3192 <p>Spécifier un niveau sans nom de module va attribuer ce niveau à
3193 tous les modules. Spécifier un niveau avec nom de module va
3194 attribuer ce niveau à ce module seulement. Il est possible de
3195 spécifier un module par le nom de son fichier source ou par son
3196 identificateur, avec ou sans le suffixe <code>_module</code>. Les
3197 trois spécifications suivantes sont donc équivalentes :</p>
3200 LogLevel info ssl:warn<br />
3201 LogLevel info mod_ssl.c:warn<br />
3202 LogLevel info ssl_module:warn<br />
3205 <p>Il est aussi possible d'attribuer un niveau de journalisation par
3206 répertoire :</p>
3210 <Directory /usr/local/apache/htdocs/app><br />
3211 LogLevel debug<br />
3216 La configuration du niveau de journalisation par répertoire
3217 n'affecte que les messages journalisés après l'interprétation de
3218 la requête et qui sont associés à cette dernière. Les messages
3219 de journalisation associés à la connexion ou au serveur ne sont
3220 pas affectés.
3223 </directivesynopsis>
3226 <name>MaxKeepAliveRequests</name>
3227 <description>Nombre de requêtes permises pour une connexion
3228 persistante</description>
3229 <syntax>MaxKeepAliveRequests <var>nombre</var></syntax>
3230 <default>MaxKeepAliveRequests 100</default>
3231 <contextlist><context>server config</context><context>virtual
3236 <p>La directive <directive>MaxKeepAliveRequests</directive> permet
3237 de limiter le nombre de requêtes autorisées par connexion lorsque
3238 <directive module="core" >KeepAlive</directive> est à "on". Si sa
3239 valeur est <code>0</code>, le nombre de requêtes autorisées est
3240 illimité. Il est recommandé de définir une valeur assez haute pour
3241 des performances du serveur maximales.</p>
3243 <p>Par exemple :</p>
3246 MaxKeepAliveRequests 500
3249 </directivesynopsis>
3252 <name>MaxRanges</name>
3253 <description>Nombre de segments de données autorisé avant le renvoi de
3254 l'intégralité de la ressource</description>
3255 <syntax>MaxRanges default | unlimited | none | <var>nombre de segments</var></syntax>
3256 <default>MaxRanges 200</default>
3257 <contextlist><context>server config</context><context>virtual host</context>
3258 <context>directory</context>
3260 <compatibility>Disponible depuis la version 2.3.15 du serveur HTTP
3261 Apache</compatibility>
3264 <p>La directive <directive>MaxRanges</directive> permet de limiter
3265 le nombre de segments de données que le serveur va renvoyer au
3266 client. Si un nombre de segments plus important est demandé, la
3267 ressource sera renvoyée dans son intégralité.</p>
3270 <dt><strong>default</strong></dt>
3271 <dd>Limite le nombre de segments de données à 200 (valeur par
3272 défaut définie à la compilation).</dd>
3274 <dt><strong>none</strong></dt>
3275 <dd>Les en-têtes Range sont ignorés.</dd>
3277 <dt><strong>unlimited</strong></dt>
3278 <dd>Le nombre de segments de données est illimité.</dd>
3280 <dt><var>nombre de segments</var></dt>
3281 <dd>Un nombre positif représentera la nombre de segments de
3282 données maximal que le serveur renverra au client.</dd>
3285 </directivesynopsis>
3288 <name>MaxRangeOverlaps</name>
3289 <description>Nombre de chevauchements de segments de données autorisé
3290 (par exemple <code>100-200,150-300</code>) avant le renvoi de la
3291 ressource complète</description>
3292 <syntax>MaxRangeOverlaps default | unlimited | none | <var>nombre de
3293 chevauchements</var></syntax>
3294 <default>MaxRangeOverlaps 20</default>
3295 <contextlist><context>server config</context><context>virtual host</context>
3296 <context>directory</context>
3298 <compatibility>Disponible depuis la version 2.3.15 du serveur HTTP
3299 Apache</compatibility>
3302 <p>La directive <directive>MaxRangeOverlaps</directive> permet
3303 de limiter le nombre de chevauchements de segments de données HTTP
3304 autorisé par le serveur. Si le nombre de
3305 chevauchements de segments demandé est supérieur au nombre maximal
3306 autorisé, la ressource sera renvoyée dans son intégralité.</p>
3309 <dt><strong>default</strong></dt>
3310 <dd>Limite le nombre de chevauchements de segments à la valeur
3311 par défaut 20 définie à la compilation.</dd>
3313 <dt><strong>none</strong></dt>
3314 <dd>Aucun chevauchement de segment n'est autorisé.</dd>
3316 <dt><strong>unlimited</strong></dt>
3317 <dd>Le nombre de chevauchements de segments est illimité.</dd>
3319 <dt><var>number-of-ranges</var></dt>
3320 <dd>Un nombre positif représente le nombre maximal de
3321 chevauchements de segments autorisé par le serveur.</dd>
3324 </directivesynopsis>
3327 <name>MaxRangeReversals</name>
3328 <description>Nombre d'inversions d'ordre autorisé dans la spécification des
3329 segments de données (par exemple <code>100-200,50-70</code>) avant le renvoi de la
3330 ressource complète</description>
3331 <syntax>MaxRangeReversals default | unlimited | none | <var>nombre
3332 d'inversions</var></syntax>
3333 <default>MaxRangeReversals 20</default>
3334 <contextlist><context>server config</context><context>virtual host</context>
3335 <context>directory</context>
3337 <compatibility>Disponible depuis la version 2.3.15 du serveur HTTP
3338 Apache</compatibility>
3341 <p>La directive <directive>MaxRangeReversals</directive> permet
3342 de limiter le nombre d'inversions d'ordre dans la spécification
3343 des segments de données HTTP
3344 autorisé par le serveur. Si le nombre
3345 d'inversions demandé est supérieur au nombre maximal
3346 autorisé, la ressource sera renvoyée dans son intégralité.</p>
3349 <dt><strong>default</strong></dt>
3350 <dd>Limite le nombre d'inversions à la valeur
3351 par défaut 20 définie à la compilation.</dd>
3353 <dt><strong>none</strong></dt>
3354 <dd>Aucune inversion n'est autorisée.</dd>
3356 <dt><strong>unlimited</strong></dt>
3357 <dd>Le nombre d'inversions est illimité.</dd>
3359 <dt><var>number-of-ranges</var></dt>
3360 <dd>Un nombre positif représente le nombre maximal
3361 d'inversions autorisé par le serveur.</dd>
3364 </directivesynopsis>
3368 <description>Définit les mécanismes de mutex et le repertoire du fichier
3369 verrou pour tous les mutex ou seulement les mutex spécifiés</description>
3370 <syntax>Mutex <var>mécanisme</var> [default|<var>nom-mutex</var>] ... [OmitPID]</syntax>
3371 <default>Mutex default</default>
3372 <contextlist><context>server config</context></contextlist>
3373 <compatibility>Disponible depuis la version 2.3.4 du serveur HTTP Apache</compatibility>
3376 <p>La directive <directive>Mutex</directive> permet de définir le
3377 mécanisme de mutex, et éventuellement le répertoire du fichier
3378 verrou que les modules et httpd utilisent pour sérialiser l'accès aux
3379 ressources. Spécifiez <code>default</code> comme premier argument
3380 pour modifier la configuration de tous les mutex ; spécifiez un nom
3381 de mutex (voir la table ci-dessous) comme premier argument pour
3382 ne modifier que la configuration de ce mutex.</p>
3384 <p>La directive <directive>Mutex</directive> est typiquement
3385 utilisée dans les situations exceptionnelles suivantes :</p>
3388 <li>choix d'un autre mécanisme de mutex lorsque le mécanisme par
3389 défaut sélectionné par <glossary>APR</glossary> présente un
3390 problème de fonctionnement ou de performances.</li>
3392 <li>choix d'un autre répertoire utilisé par les mutex à base de
3393 fichier lorsque le répertoire par défaut ne supporte pas le
3397 <note><title>Modules supportés</title>
3398 <p>Cette directive ne configure que les mutex qui ont été
3399 enregistrés avec le serveur de base via l'API
3400 <code>ap_mutex_register()</code>. Tous les modules fournis avec
3401 httpd supportent la directive <directive>Mutex</directive>, mais il
3402 n'en sera pas forcément de même pour les modules tiers.
3403 Reportez-vous à la documentation du module tiers considéré afin de
3404 déterminer le(s) nom(s) de mutex qui pourront être définis si la
3405 directive est supportée.</p>
3410 <p>Les <em>mécanismes</em> de mutex disponibles sont les suivants :</p>
3412 <li><code>default | yes</code>
3413 <p>C'est l'implémentation du verrouillage par défaut, telle
3414 qu'elle est définie par <glossary>APR</glossary>. On peut
3415 afficher l'implémentation du verrouillage par défaut via la
3416 commande <program>httpd</program> avec l'option <code>-V</code>.</p></li>
3418 <li><code>none | no</code>
3419 <p>Le mutex est désactivé, et cette valeur n'est permise pour un
3420 mutex que si le module indique qu'il s'agit d'un choix valide.
3421 Consultez la documentation du module pour plus d'informations.</p></li>
3423 <li><code>posixsem</code>
3424 <p>Une variante de mutex basée sur un sémaphore Posix.</p>
3426 <note type="warning"><title>Avertissement</title>
3427 <p>La propriété du sémaphore n'est pas restituée si un thread du
3428 processus gérant le mutex provoque une erreur de segmentation,
3429 ce qui provoquera un blocage du serveur web.</p>
3433 <li><code>sysvsem</code>
3434 <p>Une variante de mutex basée sur un sémaphore IPC SystemV.</p>
3436 <note type="warning"><title>Avertissement</title>
3437 <p>Il peut arriver que les sémaphores SysV soient conservés si le
3438 processus se crashe avant que le sémaphore ne soit supprimé.</p>
3441 <note type="warning"><title>Sécurité</title>
3442 <p>L'API des sémaphores permet les attaques par déni de service
3443 par tout programme CGI s'exécutant sous le même uid que le
3444 serveur web (autrement dit tous les programmes CGI, à moins que
3445 vous n'utilisiez un programme du style <program>suexec</program>
3446 ou <code>cgiwrapper</code>).</p>
3450 <li><code>sem</code>
3451 <p>Sélection de la "meilleure" implémentation des sémaphores
3452 disponible ; le choix s'effectue entre les sémaphores posix et
3453 IPC SystemV, dans cet ordre.</p></li>
3455 <li><code>pthread</code>
3456 <p>Une variante de mutex à base de mutex de thread Posix
3457 inter-processus.</p>
3459 <note type="warning"><title>Avertissement</title>
3460 <p>Sur la plupart des systèmes, si un processus enfant se
3461 termine anormalement alors qu'il détenait un mutex qui utilise
3462 cette implémentation, le serveur va se bloquer et cesser de
3463 répondre aux requêtes. Dans ce cas, un redémarrage manuel est
3464 nécessaire pour récupérer le mutex.</p>
3465 <p>Solaris constitue une exception notable, en ceci qu'il fournit
3466 un mécanisme qui permet en général de récupérer le mutex après
3467 l'arrêt anormal d'un processus enfant qui détenait le mutex.</p>
3468 <p>Si votre système implémente la fonction
3469 <code>pthread_mutexattr_setrobust_np()</code>, vous devriez
3470 pouvoir utiliser l'option <code>pthread</code> sans problème.</p>
3474 <li><code>fcntl:/chemin/vers/mutex</code>
3475 <p>Une variante de mutex utilisant un fichier verrou physique et
3476 la fonction <code>fcntl()</code>.</p>
3478 <note type="warning"><title>Avertissement</title>
3479 <p>Lorsqu'on utilise plusieurs mutex basés sur ce mécanisme dans
3480 un environnement multi-processus, multi-thread, des erreurs de
3481 blocage (EDEADLK) peuvent être rapportées pour des opérations de
3482 mutex valides si la fonction <code>fcntl()</code> ne gère pas
3483 les threads, comme sous Solaris.</p>
3487 <li><code>flock:/chemin/vers/mutex</code>
3488 <p>Méthode similaire à <code>fcntl:/chemin/vers/mutex</code>,
3489 mais c'est la fonction <code>flock()</code> qui est utilisée
3490 pour gérer le verrouillage par fichier.</p></li>
3492 <li><code>file:/chemin/vers/mutex</code>
3493 <p>Sélection de la "meilleure" implémentation de verrouillage
3494 par fichier disponible ; le choix s'effectue entre
3495 <code>fcntl</code> et <code>flock</code>, dans cet ordre.</p></li>
3498 <p>La plupart des mécanismes ne sont disponibles que sur les
3499 plate-formes où ces dernières et <glossary>APR</glossary> les
3500 supportent. Les mécanismes qui ne sont pas disponibles sur toutes
3501 les plate-formes sont <em>posixsem</em>,
3502 <em>sysvsem</em>, <em>sem</em>, <em>pthread</em>, <em>fcntl</em>,
3503 <em>flock</em>, et <em>file</em>.</p>
3505 <p>Avec les mécanismes à base de fichier <em>fcntl</em> et
3506 <em>flock</em>, le chemin, s'il est fourni, est un répertoire dans
3507 lequel le fichier verrou sera créé. Le répertoire par défaut est le
3508 répertoire httpd défini par la directive <directive
3509 module="core">ServerRoot</directive>. Utilisez toujours un système
3510 de fichiers local sur disque pour <code>/chemin/vers/mutex</code> et
3511 jamais un répertoire se trouvant dans un système de fichiers NFS ou
3512 AFS. Le nom de base du fichier se composera du type de mutex, d'une
3513 chaîne optionnelle correspondant à l'instance et fournie par le
3514 module ; et, sauf si le mot-clé <code>OmitPID</code> a été spécifié,
3515 l'identificateur du processus parent httpd sera ajouté afin de
3516 rendre le nom du fichier unique, évitant ainsi tout conflit lorsque
3517 plusieurs instances d'httpd partagent le même répertoire de
3518 verrouillage. Par exemple, si le nom de mutex est
3519 <code>mpm-accept</code>, et si le répertoire de verrouillage est
3520 <code>/var/httpd/locks</code>, le nom du fichier verrou pour
3521 l'instance httpd dont le processus parent a pour identifiant 12345
3522 sera <code>/var/httpd/locks/mpm-accept.12345</code>.</p>
3524 <note type="warning"><title>Sécurité</title>
3525 <p>Il est conseillé d'<em>éviter</em> de placer les fichiers mutex
3526 dans un répertoire où tout le monde peut écrire comme
3527 <code>/var/tmp</code>, car quelqu'un pourrait initier une attaque
3528 par déni de service et empêcher le serveur de démarrer en créant un
3529 fichier verrou possédant un nom identique à celui que le serveur va
3530 tenter de créer.</p>
3533 <p>La table suivante décrit les noms de mutex utilisés par httpd et
3534 ses modules associés.</p>
3536 <table border="1" style="zebra">
3540 <th>Ressource protégée</th>
3543 <td><code>mpm-accept</code></td>
3544 <td>modules MPM <module>prefork</module> et <module>worker</module></td>
3545 <td>connexions entrantes, afin d'éviter le problème de
3546 l'afflux de requêtes ; pour plus d'informations, voir la
3548 href="../misc/perf-tuning.html">Amélioration des
3549 performances</a></td>
3552 <td><code>authdigest-client</code></td>
3553 <td><module>mod_auth_digest</module></td>
3554 <td>liste de clients en mémoire partagée</td>
3557 <td><code>authdigest-opaque</code></td>
3558 <td><module>mod_auth_digest</module></td>
3559 <td>compteur en mémoire partagée</td>
3562 <td><code>ldap-cache</code></td>
3563 <td><module>mod_ldap</module></td>
3564 <td>cache de résultat de recherche LDAP</td>
3567 <td><code>rewrite-map</code></td>
3568 <td><module>mod_rewrite</module></td>
3569 <td>communication avec des programmes externes
3570 d'associations de valeurs, afin d'éviter les interférences
3571 d'entrées/sorties entre plusieurs requêtes</td>
3574 <td><code>ssl-cache</code></td>
3575 <td><module>mod_ssl</module></td>
3576 <td>cache de session SSL</td>
3579 <td><code>ssl-stapling</code></td>
3580 <td><module>mod_ssl</module></td>
3581 <td>cache de l'étiquetage OCSP ("OCSP stapling")</td>
3584 <td><code>watchdog-callback</code></td>
3585 <td><module>mod_watchdog</module></td>
3586 <td>fonction de rappel d'un module client particulier</td>
3590 <p>Le mot-clé <code>OmitPID</code> permet d'empêcher l'addition de
3591 l'identifiant du processus httpd parent au nom du fichier verrou.</p>
3594 <p>Dans l'exemple suivant, le mécanisme de mutex pour le mutex
3595 mpm-accept est modifié pour passer du mécanisme par défaut au
3596 mécanisme <code>fcntl</code>, avec le fichier verrou associé créé
3597 dans le répertoire <code>/var/httpd/locks</code>. Le mécanisme de
3598 mutex par défaut pour tous les autres mutex deviendra
3599 <code>sysvsem</code>.</p>
3602 Mutex sysvsem default<br />
3603 Mutex fcntl:/var/httpd/locks mpm-accept
3606 </directivesynopsis>
3609 <name>NameVirtualHost</name>
3610 <description>OBSOLETE : Définit une adresse IP pour les serveurs virtuels à base de
3612 <syntax>NameVirtualHost <var>adresse</var>[:<var>port</var>]</syntax>
3613 <contextlist><context>server config</context></contextlist>
3617 <p>Avant la version 2.3.11, il était nécessaire de définir une
3618 directive <directive>NameVirtualHost</directive> pour indiquer au
3619 serveur qu'une paire adresse IP/port particulière pouvait être
3620 utilisée comme serveur virtuel à base de nom. Depuis la version
3621 2.3.11, chaque fois qu'une paire adresse IP/port est utilisée dans
3622 plusieurs serveurs virtuels, l'hébergement virtuel à base de nom est
3623 automatiquement activé pour cette adresse.</p>
3625 <p>Cette directive n'a actuellement plus aucun effet.</p>
3628 <seealso><a href="../vhosts/">Documentation sur les serveurs
3629 virtuels</a></seealso>
3631 </directivesynopsis>
3634 <name>Options</name>
3635 <description>Définit les fonctionnalités disponibles pour un répertoire
3636 particulier</description>
3638 [+|-]<var>option</var> [[+|-]<var>option</var>] ...</syntax>
3639 <default>Options FollowSymlinks</default>
3640 <contextlist><context>server config</context><context>virtual
3642 <context>directory</context><context>.htaccess</context>
3644 <override>Options</override>
3645 <compatibility>Avec la version 2.3.11, la valeur par défaut passe de All
3646 à FollowSymlinks</compatibility>
3649 <p>La directive <directive>Options</directive> permet de définir
3650 les fonctionnalités de serveur disponibles pour un répertoire
3653 <p><var>option</var> peut être défini à <code>None</code>, auquel
3654 cas aucune fonctionnalité spécifique n'est activée, ou comprendre
3655 une ou plusieurs des options suivantes :</p>
3658 <dt><code>All</code></dt>
3660 <dd>Toutes les options excepté <code>MultiViews</code>.</dd>
3662 <dt><code>ExecCGI</code></dt>
3664 <dd>L'exécution de scripts CGI à l'aide du module
3665 <module>mod_cgi</module> est permise.</dd>
3667 <dt><code>FollowSymLinks</code></dt>
3671 Le serveur va suivre les liens symboliques dans le répertoire
3672 concerné. Il s'agit de la valeur par défaut.
3674 <p>Bien que le serveur suive les liens symboliques, il ne modifie
3675 <em>pas</em> le nom de chemin concerné défini par la section
3676 <directive type="section"
3677 module="core">Directory</directive>.</p>
3678 <p>Notez aussi que cette option <strong>est ignorée</strong> si
3679 elle est définie dans une section <directive type="section"
3680 module="core">Location</directive>.</p>
3681 <p>Le fait d'omettre cette option ne doit pas être considéré comme
3682 une mesure de sécurité efficace, car il existe toujours une
3683 situation de compétition (race condition) entre l'instant où l'on
3684 vérifie qu'un chemin n'est pas un lien symbolique, et l'instant où
3685 l'on utilise effectivement ce chemin.</p>
3688 <dt><code>Includes</code></dt>
3691 Les inclusions côté serveur (SSI) à l'aide du module
3692 <module>mod_include</module> sont autorisées.</dd>
3694 <dt><code>IncludesNOEXEC</code></dt>
3698 Les inclusions côté serveur (SSI) sont permises, mais <code>#exec
3699 cmd</code> et <code>#exec cgi</code> sont désactivés.
3700 L'utilisation de <code>#include virtual</code> pour les scripts
3701 CGI est cependant toujours possible depuis des répertoires
3702 définis par <directive
3703 module="mod_alias">ScriptAlias</directive>.</dd>
3705 <dt><code>Indexes</code></dt>
3708 Si une URL requise correspond au répertoire concerné, et si aucun
3709 <directive module="mod_dir">DirectoryIndex</directive> (<em>par
3710 exemple</em> <code>index.html</code>) n'est défini pour ce
3711 répertoire, le module <module>mod_autoindex</module> va renvoyer
3712 un listing formaté du répertoire.</dd>
3714 <dt><code>MultiViews</code></dt>
3717 Les vues multiples ("multiviews") à <a
3718 href="../content-negotiation.html">contenu négocié</a> à l'aide du
3719 module <module>mod_negotiation</module> sont autorisées.
3720 <note><title>Note</title> <p>Cette option est ignorée si elle est
3721 définie en tout autre endroit qu'une section <directive
3722 module="core" type="section">Directory</directive>, car
3723 <module>mod_negotiation</module> a besoin de ressources réelles
3724 pour effectuer ses comparaisons et ses évaluations.</p></note>
3728 <dt><code>SymLinksIfOwnerMatch</code></dt>
3730 <dd>Le serveur ne suivra que les liens symboliques qui renvoient
3731 vers un fichier ou un répertoire dont le propriétaire est le même
3734 <note><title>Note</title> <p>Cette option est ignorée si elle est
3735 définie dans une section <directive module="core"
3736 type="section">Location</directive>.</p>
3737 <p>Le fait d'omettre cette option ne doit pas être considéré comme
3738 une mesure de sécurité efficace, car il existe toujours une
3739 situation de compétition (race condition) entre l'instant où l'on
3740 vérifie qu'un chemin n'est pas un lien symbolique, et l'instant où
3741 l'on utilise effectivement ce chemin.</p></note>
3745 <p>Normalement, si plusieurs directives
3746 <directive>Options</directive> peuvent s'appliquer à un répertoire,
3747 c'est la plus spécifique qui est utilisée et les autres sont
3748 ignorées ; les options ne sont pas fusionnées (voir <a
3749 href="../sections.html#mergin">comment les sections sont
3750 fusionnées</a>). Elles le sont cependant si <em>toutes</em> les
3751 options de la directive <directive>Options</directive> sont
3752 précédées d'un symbole <code>+</code> ou <code>-</code>. Toute
3753 option précédée d'un <code>+</code> est ajoutée à la liste des
3754 options courantes de manière forcée et toute option précédée d'un
3755 <code>-</code> est supprimée de la liste des options courantes de la
3756 même manière.</p>
3758 <note><title>Note</title>
3759 <p>Mélanger des <directive>Options</directive> avec <code>+</code>
3760 ou <code>-</code> avec des <directive>Options</directive> sans
3761 <code>+</code> ou <code>-</code> constitue une erreur de syntaxe, et
3762 la vérification de la syntaxe au cours du démarrage du serveur fera
3763 échouer ce dernier.</p>
3766 <p>Par exemple, sans aucun symbole <code>+</code> et <code>-</code>
3770 <Directory /web/docs><br />
3772 Options Indexes FollowSymLinks<br />
3774 </Directory><br />
3776 <Directory /web/docs/spec><br />
3778 Options Includes<br />
3783 <p>ici, seule l'option <code>Includes</code> sera prise en compte
3784 pour le répertoire <code>/web/docs/spec</code>. Par contre, si la
3785 seconde directive <directive>Options</directive> utilise les
3786 symboles <code>+</code> et <code>-</code> :</p>
3789 <Directory /web/docs><br />
3791 Options Indexes FollowSymLinks<br />
3793 </Directory><br />
3795 <Directory /web/docs/spec><br />
3797 Options +Includes -Indexes<br />
3802 <p>alors, les options <code>FollowSymLinks</code> et
3803 <code>Includes</code> seront prises en compte pour le répertoire
3804 <code>/web/docs/spec</code>.</p>
3806 <note><title>Note</title>
3807 <p>L'utilisation de <code>-IncludesNOEXEC</code> ou
3808 <code>-Includes</code> désactive complètement les inclusions côté
3809 serveur sans tenir compte des définitions précédentes.</p>
3812 <p>En l'absence de toute définition d'options, la valeur par défaut
3813 est <code>FollowSymlinks</code>.</p>
3815 </directivesynopsis>
3818 <name>Protocol</name>
3819 <description>Protocole pour une socket d'écoute</description>
3820 <syntax>Protocol <var>protocole</var></syntax>
3821 <contextlist><context>server config</context><context>virtual host</context></contextlist>
3822 <compatibility>Disponible depuis la version 2.1.5 d'Apache, mais
3823 seulement depuis la version 2.3.3 sous Windows.</compatibility>
3826 <p>Cette directive permet de spécifier le protocole utilisé pour une
3827 socket d'écoute particulière. Le protocole sert à déterminer quel
3828 module doit traiter une requête, et d'appliquer les optimisations
3829 spécifiques au protocole via la directive
3830 <directive>AcceptFilter</directive>.</p>
3832 <p>Vous ne devez définir le protocole que si vous travaillez avec
3833 des ports non standards ; dans le cas général, le protocole
3834 <code>http</code> est associé au port 80 et le protocole
3835 <code>https</code> au port 443.</p>
3837 <p>Par exemple, si vous travaillez avec le protocole
3838 <code>https</code> sur un port non standard, spécifiez le protocole
3839 de manière explicite :</p>
3845 <p>Vous pouvez aussi spécifier le protocole via la directive
3846 <directive module="mpm_common">Listen</directive>.</p>
3848 <seealso><directive>AcceptFilter</directive></seealso>
3849 <seealso><directive module="mpm_common">Listen</directive></seealso>
3850 </directivesynopsis>
3854 <name>RLimitCPU</name>
3855 <description>Limite le temps CPU alloué aux processus initiés par les
3856 processus enfants d'Apache httpd</description>
3857 <syntax>RLimitCPU <var>secondes</var>|max [<var>secondes</var>|max]</syntax>
3858 <default>Non défini ; utilise les valeurs par défaut du système
3859 d'exploitation</default>
3860 <contextlist><context>server config</context><context>virtual
3862 <context>directory</context><context>.htaccess</context></contextlist>
3863 <override>All</override>
3866 <p>Prend 1 ou 2 paramètres. Le premier definit la limite de
3867 consommation de ressources pour tous les processus, et le second la
3868 consommation de ressources maximale. Les deux paramètres peuvent
3869 contenir soit un nombre, soit <code>max</code> pour indiquer au
3870 serveur que la limite de consommation correspond à la valeur
3871 maximale autorisée par la configuration du système d'exploitation.
3872 Pour augmenter la consommation maximale de ressources, le serveur
3873 doit s'exécuter en tant que <code>root</code>, ou se trouver dans sa
3874 phase de démarrage.</p>
3876 <p>Cette directive s'applique aux processus initiés par les
3877 processus enfants d'Apache httpd qui traitent les requêtes, et non aux
3878 processus enfants eux-mêmes. Sont concernés les scripts CGI et les
3879 commandes exec des SSI, mais en aucun cas les processus initiés par
3880 le processus parent d'Apache httpd comme les journalisations redirigées
3881 vers un programme.</p>
3883 <p>Les limites de ressources CPU sont exprimées en secondes par
3886 <seealso><directive module="core">RLimitMEM</directive></seealso>
3887 <seealso><directive module="core">RLimitNPROC</directive></seealso>
3888 </directivesynopsis>
3891 <name>RLimitMEM</name>
3892 <description>Limite la mémoire allouée aux processus initiés par les
3893 processus enfants d'Apache httpd</description>
3894 <syntax>RLimitMEM <var>octets</var>|max [<var>octets</var>|max]</syntax>
3895 <default>Non défini ; utilise les valeurs par défaut du système
3896 d'exploitation</default>
3897 <contextlist><context>server config</context><context>virtual
3899 <context>directory</context><context>.htaccess</context></contextlist>
3900 <override>All</override>
3903 <p>Prend 1 ou 2 paramètres. Le premier definit la limite de
3904 consommation de ressources pour tous les processus, et le second la
3905 consommation de ressources maximale. Les deux paramètres peuvent
3906 contenir soit un nombre, soit <code>max</code> pour indiquer au
3907 serveur que la limite de consommation correspond à la valeur
3908 maximale autorisée par la configuration du système d'exploitation.
3909 Pour augmenter la consommation maximale de ressources, le serveur
3910 doit s'exécuter en tant que <code>root</code>, ou se trouver dans sa
3911 phase de démarrage.</p>
3913 <p>Cette directive s'applique aux processus initiés par les
3914 processus enfants d'Apache httpd qui traitent les requêtes, et non aux
3915 processus enfants eux-mêmes. Sont concernés les scripts CGI et les
3916 commandes exec des SSI, mais en aucun cas les processus initiés par
3917 le processus parent d'Apache httpd comme les journalisations redirigées
3918 vers un programme.</p>
3920 <p>Les limites de ressources mémoire sont exprimées en octets par
3923 <seealso><directive module="core">RLimitCPU</directive></seealso>
3924 <seealso><directive module="core">RLimitNPROC</directive></seealso>
3925 </directivesynopsis>
3928 <name>RLimitNPROC</name>
3929 <description>Limite le nombre de processus qui peuvent être initiés par
3930 les processus initiés par les processus enfants d'Apache httpd</description>
3931 <syntax>RLimitNPROC <var>nombre</var>|max [<var>nombre</var>|max]</syntax>
3932 <default>Unset; uses operating system defaults</default>
3933 <contextlist><context>server config</context><context>virtual
3935 <context>directory</context><context>.htaccess</context></contextlist>
3936 <override>All</override>
3939 <p>Prend 1 ou 2 paramètres. Le premier definit la limite de
3940 consommation de ressources pour tous les processus, et le second la
3941 consommation de ressources maximale. Les deux paramètres peuvent
3942 contenir soit un nombre, soit <code>max</code> pour indiquer au
3943 serveur que la limite de consommation correspond à la valeur
3944 maximale autorisée par la configuration du système d'exploitation.
3945 Pour augmenter la consommation maximale de ressources, le serveur
3946 doit s'exécuter en tant que <code>root</code>, ou se trouver dans sa
3947 phase de démarrage.</p>
3949 <p>Cette directive s'applique aux processus initiés par les
3950 processus enfants d'Apache httpd qui traitent les requêtes, et non aux
3951 processus enfants eux-mêmes. Sont concernés les scripts CGI et les
3952 commandes exec des SSI, mais en aucun cas les processus initiés par
3953 le processus parent d'Apache httpd comme les journalisations redirigées
3954 vers un programme.</p>
3956 <p>Les limites des processus contrôlent le nombre de processus par
3959 <note><title>Note</title>
3960 <p>Si les processus CGI s'exécutent sous le même
3961 utilisateur que celui du serveur web, cette
3962 directive va limiter le nombre de processus que le serveur
3963 pourra lui-même créer. La présence de messages
3964 <strong><code>cannot fork</code></strong> dans le journal des
3965 erreurs indiquera que la limite est atteinte.</p>
3968 <seealso><directive module="core">RLimitMEM</directive></seealso>
3969 <seealso><directive module="core">RLimitCPU</directive></seealso>
3970 </directivesynopsis>
3973 <name>ScriptInterpreterSource</name>
3974 <description>Permet de localiser l'interpréteur des scripts
3976 <syntax>ScriptInterpreterSource Registry|Registry-Strict|Script</syntax>
3977 <default>ScriptInterpreterSource Script</default>
3978 <contextlist><context>server config</context><context>virtual
3980 <context>directory</context><context>.htaccess</context></contextlist>
3981 <override>FileInfo</override>
3982 <compatibility>Win32 seulement ;
3983 l'option <code>Registry-Strict</code> est disponible dans les versions
3984 2.0 et supérieures du serveur HTTP Apache</compatibility>
3987 <p>Cette directive permet de contrôler la méthode qu'utilise Apache
3988 httpd pour trouver l'interpréteur destiné à exécuter les scripts CGI. La
3989 définition par défaut est <code>Script</code> : ceci indique à
3990 Apache httpd qu'il doit utiliser l'interpréteur précisé dans la ligne
3991 shebang du script (la première ligne, commençant par
3992 <code>#!</code>). Sur les systèmes Win32, cette ligne ressemble
3993 souvent à ceci :</p>
3996 #!C:/Perl/bin/perl.exe
3999 <p>ou simplement, dans le cas où <code>perl</code> est dans le
4000 <code>PATH</code> :</p>
4006 <p>Avec <code>ScriptInterpreterSource Registry</code>, Windows va
4007 effectuer une recherche dans l'arborescence
4008 <code>HKEY_CLASSES_ROOT</code> de la base de registre avec comme
4009 mot-clé l'extension du fichier contenant le script (par exemple
4010 <code>.pl</code>). C'est la commande définie par la sous-clé de
4011 registre <code>Shell\ExecCGI\Command</code> ou, si elle n'existe
4012 pas, la sous-clé <code>Shell\Open\Command</code> qui est utilisée
4013 pour ouvrir le fichier du script. Si ces clés de registre ne sont
4014 pas trouvées, Apache httpd utilise la méthode de l'option
4015 <code>Script</code>.</p>
4017 <note type="warning"><title>Sécurité</title>
4018 <p>Soyez prudent si vous utilisez <code>ScriptInterpreterSource
4019 Registry</code> avec des répertoires faisant l'objet d'un <directive
4020 module="mod_alias">ScriptAlias</directive>, car Apache httpd va essayer
4021 d'exécuter <strong>tous</strong> les fichiers contenus dans
4022 celui-ci. L'option <code>Registry</code> peut causer des appels de
4023 programmes non voulus sur des fichiers non destinés à être exécutés.
4024 Par exemple, la commande par défaut open sur les fichiers
4025 <code>.htm</code> sur la plupart des systèmes Windows va lancer
4026 Microsoft Internet Explorer ; ainsi, toute requête HTTP pour un
4027 fichier <code>.htm</code> situé dans le répertoire des scripts
4028 va lancer le navigateur en arrière-plan sur le serveur, ce qui a
4029 toutes les chances de crasher votre système dans les minutes qui
4033 <p>L'option <code>Registry-Strict</code>, apparue avec la version
4034 2.0 du serveur HTTP Apache,
4035 agit de manière identique à <code>Registry</code>, mais n'utilise
4036 que la sous-clé <code>Shell\ExecCGI\Command</code>. La présence de
4037 la clé <code>ExecCGI</code> n'étant pas systématique, Elle doit être
4038 définie manuellement dans le registre Windows et évite ainsi tout
4039 appel de programme accidentel sur votre système.</p>
4041 </directivesynopsis>
4044 <name>SeeRequestTail</name>
4045 <description>Détermine si mod_status affiche les 63 premiers caractères
4046 d'une requête ou les 63 derniers, en supposant que la requête
4047 elle-même possède plus de 63 caractères.</description>
4048 <syntax>SeeRequestTail On|Off</syntax>
4049 <default>SeeRequestTail Off</default>
4050 <contextlist><context>server config</context></contextlist>
4051 <compatibility>Disponible depuis la version 2.2.7
4052 d'Apache httpd.</compatibility>
4055 <p>Avec <code>ExtendedStatus On</code>, mod_status affiche la
4056 véritable requête en cours de traitement. Pour des raisons
4057 historiques, seuls 63 caractères de la requête sont réellement
4058 stockés à des fins d'affichage. Cette directive permet de déterminer
4059 si ce sont les 63 premiers caractères qui seront stockés (c'est le
4060 comportement par défaut),
4061 ou si ce sont les 63 derniers. Ceci ne s'applique bien entendu que
4062 si la taille de la requête est de 64 caractères ou plus.</p>
4064 <p>Si Apache httpd traite la requête <code
4065 >GET /disque1/stockage/apache/htdocs/images/rep-images1/nourriture/pommes.jpg HTTP/1.1</code>
4066 , l'affichage de la requête par mod_status se présentera comme suit :
4071 <th>Off (défaut)</th>
4072 <td>GET /disque1/stockage/apache/htdocs/images/rep-images1/nourritu</td>
4076 <td>apache/htdocs/images/rep-images1/nourriture/pommes.jpg HTTP/1.1</td>
4082 </directivesynopsis>
4085 <name>ServerAdmin</name>
4086 <description>L'adresse électronique que le serveur inclut dans les
4087 messages d'erreur envoyés au client</description>
4088 <syntax>ServerAdmin <var>adresse électronique</var>|<var>URL</var></syntax>
4089 <contextlist><context>server config</context><context>virtual
4094 <p>La directive <directive>ServerAdmin</directive> permet de définir
4095 l'adresse de contact que le serveur va inclure dans tout message
4096 d'erreur qu'il envoie au client. Si le programme <code>httpd</code>
4097 ne reconnait pas l'argument fourni comme une URL, il suppose que
4098 c'est une <var>adresse électronique</var>, et lui ajoute le préfixe
4099 <code>mailto:</code> dans les cibles des hyperliens. Il est
4100 cependant recommandé d'utiliser exclusivement une adresse
4101 électronique, car de nombreux scripts CGI considèrent ceci comme
4102 implicite. Si vous utilisez une URL, elle doit pointer vers un autre
4103 serveur que vous contrôlez. Dans le cas contraire, les utilisateurs
4104 seraient dans l'impossibilité de vous contacter en cas de problème.</p>
4106 <p>Il peut s'avérer utile de définir une adresse dédiée à
4107 l'administration du serveur, par exemple :</p>
4110 ServerAdmin www-admin@foo.example.com
4112 <p>car les utilisateurs ne mentionnent pas systématiquement le
4113 serveur dont ils parlent !</p>
4115 </directivesynopsis>
4118 <name>ServerAlias</name>
4119 <description>Autres noms d'un serveur utilisables pour atteindre des
4120 serveurs virtuels à base de nom</description>
4121 <syntax>ServerAlias <var>nom serveur</var> [<var>nom serveur</var>]
4123 <contextlist><context>virtual host</context></contextlist>
4126 <p>La directive <directive>ServerAlias</directive> permet de définir
4127 les noms alternatifs d'un serveur utilisables pour atteindre des <a
4128 href="../vhosts/name-based.html">serveurs virtuels à base de
4129 nom</a>. La directive <directive>ServerAlias</directive> peut
4130 contenir des caractères génériques, si nécessaire.</p>
4133 <VirtualHost *:80><br />
4134 ServerName serveur.example.com<br />
4135 ServerAlias serveur serveur2.example.com serveur2<br />
4136 ServerAlias *.example.com<br />
4137 UseCanonicalName Off<br />
4139 </VirtualHost>
4141 <p>La recherche du serveur virtuel à base de nom correspondant au
4142 plus près à la requête s'effectue selon l'ordre d'apparition des
4143 directives <directive type="section"
4144 module="core">virtualhost</directive> dans le fichier de
4145 configuration. Le premier serveur virtuel dont le <directive
4146 module="core">ServerName</directive> ou le <directive
4147 module="core">ServerAlias</directive> correspond est choisi, sans
4148 priorité particulière si le nom contient des caractères génériques
4149 (que ce soit pour ServerName ou ServerAlias).</p>
4151 <seealso><directive module="core">UseCanonicalName</directive></seealso>
4152 <seealso><a href="../vhosts/">Documentation sur les serveurs virtuels
4153 du serveur HTTP Apache</a></seealso>
4154 </directivesynopsis>
4157 <name>ServerName</name>
4158 <description>Nom d'hôte et port que le serveur utilise pour
4159 s'authentifier lui-même</description>
4160 <syntax>ServerName [<var>protocole</var>://]<var>nom de domaine
4161 entièrement qualifié</var>[:<var>port</var>]</syntax>
4162 <contextlist><context>server config</context><context>virtual
4167 <p>La directive <directive>ServerName</directive> permet de définir
4168 les protocole, nom d'hôte et port d'une requête que le serveur
4169 utilise pour s'authentifier lui-même. Ceci est utile lors de la
4170 création de redirections d'URLs.</p>
4172 <p>La directive <directive>ServerName</directive> permet aussi
4173 (éventuellement en conjonction avec la directive
4174 <directive>ServerAlias</directive>) d'identifier de manière unique
4175 un serveur virtuel, lorsqu'elle est utilisée dans un contexte de <a
4176 href="../vhosts/name-based.html">serveurs virtuels à base de
4179 <p>Par exemple, si le nom de la
4180 machine hébergeant le serveur web est
4181 <code>simple.example.com</code>, la machine possède l'alias
4182 DNS <code>www.example.com</code>, et si vous voulez que le serveur
4183 web s'identifie avec cet alias, vous devez utilisez la définition
4187 ServerName www.example.com
4190 <p>La directive <directive>ServerName</directive> peut apparaître à
4191 toutes les étapes de la définition du serveur. Toute occurrence
4192 annule cependant la précédente (pour ce serveur).</p>
4194 <p>Si la directive <directive>ServerName</directive> n'est pas
4195 définie, le serveur tente de déterminer le nom d'hôte en effectuant
4196 une recherche DNS inverse sur son adresse IP. Si la directive
4197 <directive>ServerName</directive> ne précise pas de port, le serveur
4198 utilisera celui de la requête entrante. Il est recommandé de
4199 spécifier un nom d'hôte et un port spécifiques à l'aide de la
4200 directive <directive>ServerName</directive> pour une fiabilité
4201 optimale et à titre préventif.</p>
4203 <p>Si vous définissez des <a
4204 href="../vhosts/name-based.html">serveurs virtuels à base de
4205 nom</a>, une directive <directive>ServerName</directive> située à
4206 l'intérieur d'une section <directive type="section"
4207 module="core">VirtualHost</directive> spécifiera quel nom d'hôte
4208 doit apparaître dans l'en-tête de requête <code>Host:</code> pour
4209 pouvoir atteindre ce serveur virtuel.</p>
4212 <p>Parfois, le serveur s'exécute en amont d'un dispositif qui
4213 implémente SSL, comme un mandataire inverse, un répartiteur de
4214 charge ou un boîtier dédié SSL. Dans ce cas, spécifiez le protocole
4215 <code>https://</code> et le port auquel les clients se connectent
4216 dans la directive <directive>ServerName</directive>, afin de
4217 s'assurer que le serveur génère correctement ses URLs
4218 d'auto-identification.
4221 <p>Voir la description des directives <directive
4222 module="core">UseCanonicalName</directive> et <directive
4223 module="core">UseCanonicalPhysicalPort</directive> pour les
4224 définitions qui permettent de déterminer si les URLs
4225 auto-identifiantes (par exemple via le module
4226 <module>mod_dir</module>) vont faire référence au port spécifié, ou
4227 au port indiqué dans la requête du client.
4230 <note type="warning">
4231 <p>Si la valeur de la directive <directive>ServerName</directive> ne
4232 peut pas être résolue en adresse IP, le démarrage du serveur
4233 provoquera un avertissement. <code>httpd</code> va alors utiliser le
4234 résultat de la commande système <code>hostname</code> pour
4235 déterminer le nom du serveur, ce qui ne correspondra pratiquement
4236 jamais au nom de serveur que vous souhaitez réellement.</p>
4238 httpd: Could not reliably determine the server's fully qualified domain name, using rocinante.local for ServerName
4244 <seealso><a href="../dns-caveats.html">Problèmes concernant le DNS et
4245 le serveur HTTP Apache</a></seealso>
4246 <seealso><a href="../vhosts/">Documentation sur les serveurs virtuels
4247 du serveur HTTP Apache</a></seealso>
4248 <seealso><directive module="core">UseCanonicalName</directive></seealso>
4249 <seealso><directive module="core">UseCanonicalPhysicalPort</directive></seealso>
4250 <seealso><directive module="core">ServerAlias</directive></seealso>
4251 </directivesynopsis>
4254 <name>ServerPath</name>
4255 <description>Nom de chemin d'URL hérité pour un serveur virtuel à base
4256 de nom accédé par un navigateur incompatible</description>
4257 <syntax>ServerPath <var>chemin d'URL</var></syntax>
4258 <contextlist><context>virtual host</context></contextlist>
4261 <p>La directive <directive>ServerPath</directive> permet de définir
4262 le nom de chemin d'URL hérité d'un hôte, à utiliser avec les <a
4263 href="../vhosts/">serveurs virtuels à base de nom</a>.</p>
4265 <seealso><a href="../vhosts/">Documentation sur les serveurs virtuels
4266 du serveur HTTP Apache</a></seealso>
4267 </directivesynopsis>
4270 <name>ServerRoot</name>
4271 <description>Racine du répertoire d'installation du
4272 serveur</description>
4273 <syntax>ServerRoot <var>chemin de répertoire</var></syntax>
4274 <default>ServerRoot /usr/local/apache</default>
4275 <contextlist><context>server config</context></contextlist>
4278 <p>La directive <directive>ServerRoot</directive> permet de définir
4279 le répertoire dans lequel le serveur est installé. En particulier,
4280 il contiendra les sous-répertoires <code>conf/</code> et
4281 <code>logs/</code>. Les chemins relatifs indiqués dans les autres
4282 directives (comme <directive
4283 module="core">Include</directive> ou <directive
4284 module="mod_so">LoadModule</directive>) seront définis par
4285 rapport à ce répertoire.</p>
4287 <example><title>Example</title>
4288 ServerRoot /home/httpd
4291 <p>La valeur par défaut de <directive>ServerRoot</directive> peut
4292 être modifiée via l'argument <code>--prefix</code> de la commande <a
4293 href="../programs/configure.html"><code>configure</code></a>, et de
4294 nombreuses distributions tierces du serveur proposent une valeur
4295 différente de celles listées ci-dessus.</p>
4298 <seealso><a href="../invoking.html">the <code>-d</code>
4299 options de <code>httpd</code></a></seealso>
4300 <seealso><a href="../misc/security_tips.html#serverroot">les conseils à
4301 propos de sécurité</a> pour des informations sur la manière de définir
4302 correctement les permissions sur le répertoire indiqué par la directive
4303 <directive>ServerRoot</directive></seealso>
4304 </directivesynopsis>
4307 <name>ServerSignature</name>
4308 <description>Définit un pied de page pour les documents générés par le
4309 serveur</description>
4310 <syntax>ServerSignature On|Off|EMail</syntax>
4311 <default>ServerSignature Off</default>
4312 <contextlist><context>server config</context><context>virtual
4314 <context>directory</context><context>.htaccess</context>
4316 <override>All</override>
4319 <p>La directive <directive>ServerSignature</directive> permet de
4320 définir une ligne de pied de page fixe pour les documents générés
4321 par le serveur (messages d'erreur, listings de répertoires ftp de
4322 <module>mod_proxy</module>, sorties de <module>mod_info</module>,
4323 etc...). Dans le cas d'une chaîne de mandataires, l'utilisateur n'a
4324 souvent aucun moyen de déterminer lequel des mandataires chaînés a
4325 généré un message d'erreur, et c'est une des raisons pour lesquelles
4326 on peut être amené à ajouter un tel pied de page.</p>
4328 <p>La valeur par défaut <code>Off</code> supprime la ligne de pied
4329 de page (et est ainsi compatible avec le comportement des
4330 versions 1.2 et antérieures d'Apache). la valeur <code>On</code>
4331 ajoute simplement une ligne contenant le numéro de version du
4332 serveur ainsi que le nom du serveur virtuel issu de la directive
4333 <directive module="core">ServerName</directive>, alors que la valeur
4334 <code>EMail</code> ajoute en plus une référence "mailto:" à
4335 l'administrateur du document référencé issu la directive
4336 <directive module="core">ServerAdmin</directive>.</p>
4338 <p>Après la version 2.0.44, les détails à propos du numéro de
4339 version du serveur sont contrôlés à l'aide de la directive
4340 <directive module="core">ServerTokens</directive>.</p>
4342 <seealso><directive module="core">ServerTokens</directive></seealso>
4343 </directivesynopsis>
4346 <name>ServerTokens</name>
4347 <description>Configure l'en-tête <code>Server</code> de la réponse
4349 <syntax>ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full</syntax>
4350 <default>ServerTokens Full</default>
4351 <contextlist><context>server config</context></contextlist>
4354 <p>Cette directive permet de contrôler le contenu de l'en-tête
4355 <code>Server</code> inclus dans la réponse envoyée au client : cet
4356 en-tête peut contenir le type de système d'exploitation du serveur,
4357 ainsi que des informations à propos des modules compilés avec le
4361 <dt><code>ServerTokens Full</code> (ou non spécifié)</dt>
4363 <dd>Le serveur envoie par exemple : <code>Server: Apache/2.4.1
4364 (Unix) PHP/4.2.2 MyMod/1.2</code></dd>
4369 <dt><code>ServerTokens Prod[uctOnly]</code></dt>
4371 <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4374 <dt><code>ServerTokens Major</code></dt>
4376 <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4377 Apache/2</code></dd>
4379 <dt><code>ServerTokens Minor</code></dt>
4381 <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4382 Apache/2.4</code></dd>
4384 <dt><code>ServerTokens Min[imal]</code></dt>
4386 <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4387 Apache/2.4.1</code></dd>
4389 <dt><code>ServerTokens OS</code></dt>
4391 <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4392 Apache/2.4.1 (Unix)</code></dd>
4398 <p>Cette définition s'applique à l'ensemble du serveur et ne peut
4399 être activée ou désactivée pour tel ou tel serveur virtuel.</p>
4401 <p>Dans les versions postérieures à 2.0.44, cette directive contrôle
4402 aussi les informations fournies par la directive <directive
4403 module="core">ServerSignature</directive>.</p>
4405 <note>Définir <directive>ServerTokens</directive> à une
4406 valeur inférieure à <code>minimal</code> n'est pas
4407 recommandé car le débogage des problèmes
4408 interopérationnels n'en sera alors que plus difficile. Notez
4409 aussi que la désactivation de l'en-tête Server:
4410 n'améliore en rien la sécurité de votre
4411 serveur ; le concept de "sécurité par
4412 l'obscurité" est un mythe et conduit à
4413 une mauvaise perception de ce qu'est la sécurité.</note>
4417 <seealso><directive module="core">ServerSignature</directive></seealso>
4418 </directivesynopsis>
4421 <name>SetHandler</name>
4422 <description>Force le traitement des fichiers spécifiés par un
4423 gestionnaire particulier</description>
4424 <syntax>SetHandler <var>nom gestionnaire</var>|None</syntax>
4425 <contextlist><context>server config</context><context>virtual
4427 <context>directory</context><context>.htaccess</context>
4429 <override>FileInfo</override>
4430 <compatibility>Intégré dans le noyau d'Apache httpd depuis la version
4434 <p>Lorsqu'elle se situe à l'intérieur d'un fichier
4435 <code>.htaccess</code>, ou d'une section <directive type="section"
4436 module="core">Directory</directive> ou <directive type="section"
4437 module="core">Location</directive>, cette directive force le
4438 traitement de tous les fichiers spécifiés par le <a
4439 href="../handler.html">gestionnaire</a> défini par l'argument
4440 <var>nom gestionnaire</var>. Par exemple, dans le cas d'un
4441 répertoire dont vous voulez interpréter le contenu comme des
4442 fichiers de règles d'images cliquables, sans tenir compte des
4443 extensions, vous pouvez ajouter la ligne suivante dans un fichier
4444 <code>.htaccess</code> de ce répertoire :</p>
4447 SetHandler imap-file
4450 <p>Autre exemple : si vous voulez que le serveur affiche un
4451 compte-rendu d'état chaque fois qu'une URL du type <code>http://nom
4452 serveur/status</code> est appelée, vous pouvez ajouter ceci dans
4453 <code>httpd.conf</code> :</p>
4456 <Location /status><br />
4458 SetHandler server-status<br />
4463 <p>Vous pouvez écraser la définition antérieure d'une directive
4464 <directive>SetHandler</directive> en utilisant la valeur
4465 <code>None</code>.</p>
4467 <note><title>Note</title>
4468 <p>Comme <directive>SetHandler</directive> l'emporte sur la
4469 définition des gestionnaires par défaut, le comportement habituel
4470 consistant à traiter les URLs se terminant par un slash (/) comme
4471 des répertoires ou des fichiers index est désactivé.</p></note>
4474 <seealso><directive module="mod_mime">AddHandler</directive></seealso>
4476 </directivesynopsis>
4479 <name>SetInputFilter</name>
4480 <description>Définit les filtres par lesquels vont passer les requêtes
4481 client et les données POST</description>
4482 <syntax>SetInputFilter <var>filtre</var>[;<var>filtre</var>...]</syntax>
4483 <contextlist><context>server config</context><context>virtual
4485 <context>directory</context><context>.htaccess</context>
4487 <override>FileInfo</override>
4490 <p>La directive <directive>SetInputFilter</directive> permet de
4491 définir le ou les filtres par lesquels vont passer les requêtes
4492 client et les données POST au moment où le serveur les reçoit. Cette
4493 définition vient en ajout à tout autre filtre défini en
4494 quelqu'endroit que ce soit, y compris via la directive <directive
4495 module="mod_mime">AddInputFilter</directive>.</p>
4497 <p>Si la directive comporte plusieurs filtres, ils doivent être
4498 séparés par des points-virgules, et spécifiés selon l'ordre dans
4499 lequel vous souhaitez les voir agir sur les contenus.</p>
4501 <seealso>documentation des <a
4502 href="../filter.html">Filtres</a></seealso>
4503 </directivesynopsis>
4506 <name>SetOutputFilter</name>
4507 <description>Définit les filtres par lesquels vont passer les réponses
4508 du serveur</description>
4509 <syntax>SetOutputFilter <var>filtre</var>[;<var>filtre</var>...]</syntax>
4510 <contextlist><context>server config</context><context>virtual
4512 <context>directory</context><context>.htaccess</context>
4514 <override>FileInfo</override>
4517 <p>La directive <directive>SetOutputFilter</directive> permet de
4518 définir les filtres par lesquels vont passer les réponses du serveur
4519 avant d'être envoyées au client. Cette définition vient en ajout à
4520 tout autre filtre défini en quelqu'endroit que ce soit, y compris
4521 via la directive <directive
4522 module="mod_mime">AddOutputFilter</directive>.</p>
4524 <p>Par exemple, la configuration suivante va traiter tous les
4525 fichiers du répertoire <code>/www/data/</code> comme des inclusions
4526 côté serveur (SSI) :</p>
4529 <Directory /www/data/><br />
4531 SetOutputFilter INCLUDES<br />
4536 <p>Si la directive comporte plusieurs filtres, ils doivent être
4537 séparés par des points-virgules, et spécifiés selon l'ordre dans
4538 lequel vous souhaitez les voir agir sur les contenus.</p>
4540 <seealso><a href="../filter.html">Filters</a> documentation</seealso>
4541 </directivesynopsis>
4544 <name>TimeOut</name>
4545 <description>Temps pendant lequel le serveur va attendre certains
4546 évènements avant de considérer qu'une requête a échoué</description>
4547 <syntax>TimeOut <var>secondes</var></syntax>
4548 <default>TimeOut 60</default>
4549 <contextlist><context>server config</context><context>virtual
4550 host</context></contextlist>
4553 <p>La directive <directive>TimeOut</directive> permet de définir le
4554 temps maximum pendant lequel Apache httpd va attendre des entrées/sorties
4555 selon les circonstances :</p>
4558 <li>Lors de la lecture de données en provenance du client, le
4559 temps maximum jusqu'à l'arrivée d'un paquet TCP si le tampon est
4562 <li>Lors de l'écriture de données destinées au client, le temps
4563 maximum jusqu'à l'arrivée de l'accusé-réception d'un paquet si le
4564 tampon d'envoi est plein.</li>
4566 <li>Avec <module>mod_cgi</module>, le temps d'attente maximum des
4567 sorties d'un script CGI.</li>
4569 <li>Avec <module>mod_ext_filter</module>, le temps d'attente
4570 maximum des sorties d'un processus de filtrage.</li>
4572 <li>Avec <module>mod_proxy</module>, la valeur du délai par défaut
4573 si <directive module="mod_proxy">ProxyTimeout</directive> n'est
4574 pas défini.</li>
4578 </directivesynopsis>
4581 <name>TraceEnable</name>
4582 <description>Détermine le comportement des requêtes
4583 <code>TRACE</code></description>
4584 <syntax>TraceEnable <var>[on|off|extended]</var></syntax>
4585 <default>TraceEnable on</default>
4586 <contextlist><context>server config</context><context>virtual host</context></contextlist>
4587 <compatibility>Disponible dans les versions 1.3.34, 2.0.55 et
4588 supérieures du serveur HTTP Apache</compatibility>
4591 <p>Cette directive l'emporte sur le comportement de
4592 <code>TRACE</code> pour le noyau du serveur et
4593 <module>mod_proxy</module>. La définition par défaut
4594 <code>TraceEnable on</code> permet des requêtes <code>TRACE</code>
4595 selon la RFC 2616, qui interdit d'ajouter tout corps à la requête.
4596 La définition <code>TraceEnable off</code> indique au noyau du
4597 serveur et à <module>mod_proxy</module> de retourner un code
4598 d'erreur <code>405</code> (Méthode non autorisée) au client.</p>
4600 <p>En fait, et à des fins de test et de diagnostic seulement, on
4601 peut autoriser l'ajout d'un corps de requête à l'aide de la
4602 définition non standard <code>TraceEnable extended</code>. Le noyau
4603 du serveur (dans le cas d'un serveur d'origine) va limiter la taille
4604 du corps de requête à 64k (plus 8k pour les en-têtes de
4605 fractionnement si <code>Transfer-Encoding: chunked</code> est
4606 utilisé). Le noyau du serveur va reproduire l'ensemble des en-têtes,
4607 y compris les en-têtes de fractionnement avec le corps de la
4608 réponse. Dans le cas d'un serveur mandataire, la taille du corps de
4609 requête n'est pas limitée à 64k.</p>
4611 <note><title>Note</title>
4612 <p>Bien que certains prétendent le contraire, <code>TRACE</code> ne
4613 constitue pas une vulnérabilité en matière de sécurité, et il n'y a
4614 aucune raison suffisante pour le désactiver, ce qui rendrait
4615 votre serveur non conforme.</p>
4618 </directivesynopsis>
4621 <name>UnDefine</name>
4622 <description>Invalide la définition d'une variable</description>
4623 <syntax>UnDefine <var>nom-variable</var></syntax>
4624 <contextlist><context>server config</context></contextlist>
4627 <p>Annule l'effet d'une directive <directive
4628 module="core">Define</directive> ou d'un argument <code>-D</code> de
4629 <program>httpd</program> en invalidant l'existence de la variable
4631 <p>On peut utiliser cette directive pour inverser l'effet d'une
4632 section <directive module="core" type="section">IfDefine</directive>
4633 sans avoir à modifier les arguments <code>-D</code> dans les scripts
4634 de démarrage.</p>
4636 </directivesynopsis>
4639 <name>UseCanonicalName</name>
4640 <description>Définit la manière dont le serveur détermine son propre nom
4641 et son port</description>
4642 <syntax>UseCanonicalName On|Off|DNS</syntax>
4643 <default>UseCanonicalName Off</default>
4644 <contextlist><context>server config</context><context>virtual
4646 <context>directory</context></contextlist>
4649 <p>Dans de nombreuses situations, Apache httpd doit construire une URL
4650 <em>auto-identifiante</em> -- c'est à dire une URL qui fait
4651 référence au serveur lui-même. Avec <code>UseCanonicalName
4652 On</code>, Apache httpd va utiliser le nom d'hôte et le port spécifiés par
4653 la directive <directive module="core">ServerName</directive> pour
4654 construire le nom canonique du serveur. Ce nom est utilisé dans
4655 toutes les URLs auto-identifiantes, et affecté aux variables
4656 <code>SERVER_NAME</code> et <code>SERVER_PORT</code> dans les
4659 <p>Avec <code>UseCanonicalName Off</code>, Apache httpd va construire ses
4660 URLs auto-identifiantes à l'aide du nom d'hôte et du port fournis
4661 par le client, si ce dernier en a fourni un (dans la négative,
4662 Apache utilisera le nom canonique, de la même manière que
4663 ci-dessus). Ces valeurs sont les mêmes que celles qui sont utilisées
4664 pour implémenter les <a
4665 href="../vhosts/name-based.html">serveurs virtuels à base de
4666 nom</a>, et sont disponibles avec les mêmes clients. De même, les
4667 variables CGI <code>SERVER_NAME</code> et <code>SERVER_PORT</code>
4668 seront affectées des valeurs fournies par le client.</p>
4670 <p>Cette directive peut s'avérer utile, par exemple, sur un serveur
4671 intranet auquel les utilisateurs se connectent en utilisant des noms
4672 courts tels que <code>www</code>. Si les utilisateurs tapent un nom
4673 court suivi d'une URL qui fait référence à un répertoire, comme
4674 <code>http://www/splat</code>, <em>sans le slash terminal</em>, vous
4675 remarquerez qu'Apache httpd va les rediriger vers
4676 <code>http://www.example.com/splat/</code>. Si vous avez activé
4677 l'authentification, ceci va obliger l'utilisateur à s'authentifier
4678 deux fois (une première fois pour <code>www</code> et une seconde
4679 fois pour <code>www.example.com</code> -- voir <a
4680 href="http://httpd.apache.org/docs/misc/FAQ.html#prompted-twice">la
4681 foire aux questions sur ce sujet pour plus d'informations</a>). Par
4682 contre, si <directive>UseCanonicalName</directive> est définie à
4683 <code>Off</code>, Apache httpd redirigera l'utilisateur vers
4684 <code>http://www/splat/</code>.</p>
4686 <p>Pour l'hébergement virtuel en masse à base d'adresse IP, on
4687 utilise une troisième option, <code>UseCanonicalName
4688 DNS</code>, pour supporter les clients anciens qui ne
4689 fournissent pas d'en-tête <code>Host:</code>. Apache httpd effectue alors
4690 une recherche DNS inverse sur l'adresse IP du serveur auquel le
4691 client s'est connecté afin de construire ses URLs
4692 auto-identifiantes.</p>
4694 <note type="warning"><title>Avertissement</title>
4695 <p>Les programmes CGI risquent d'être perturbés par cette option
4696 s'ils tiennent compte de la variable <code>SERVER_NAME</code>. Le
4697 client est pratiquement libre de fournir la valeur qu'il veut comme
4698 nom d'hôte. Mais si le programme CGI n'utilise
4699 <code>SERVER_NAME</code> que pour construire des URLs
4700 auto-identifiantes, il ne devrait pas y avoir de problème.</p>
4703 <seealso><directive module="core">UseCanonicalPhysicalPort</directive></seealso>
4704 <seealso><directive module="core">ServerName</directive></seealso>
4705 <seealso><directive module="mpm_common">Listen</directive></seealso>
4706 </directivesynopsis>
4709 <name>UseCanonicalPhysicalPort</name>
4710 <description>Définit la manière dont le serveur
4711 détermine son propre port</description>
4712 <syntax>UseCanonicalPhysicalPort On|Off</syntax>
4713 <default>UseCanonicalPhysicalPort Off</default>
4714 <contextlist><context>server config</context><context>virtual
4716 <context>directory</context></contextlist>
4719 <p>Dans de nombreuses situations, Apache httpd doit construire une URL
4720 <em>auto-identifiante</em> -- c'est à dire une URL qui fait
4721 référence au serveur lui-même. Avec <code>UseCanonicalPhysicalPort
4722 On</code>, Apache httpd va fournir le numéro de port physique réel utilisé
4723 par la requête en tant que port potentiel, pour construire le port
4724 canonique afin que le serveur puisse alimenter la directive
4725 <directive module="core">UseCanonicalName</directive>. Avec
4726 <code>UseCanonicalPhysicalPort Off</code>, Apache httpd n'utilisera pas le
4727 numéro de port physique réel, mais au contraire se référera aux
4728 informations de configuration pour construire un numéro de port
4731 <note><title>Note</title>
4732 <p>L'ordre dans lequel s'effectue la recherche quand on utilise le
4733 port physique est le suivant :</p>
4735 <dt><code>UseCanonicalName On</code></dt>
4738 <li>Port indiqué dans <directive module="core">Servername</directive></li>
4739 <li>Port physique</li>
4740 <li>Port par défaut</li>
4743 <dt><code>UseCanonicalName Off | DNS</code></dt>
4746 <li>Port spécifié dans l'en-tête <code>Host:</code></li>
4747 <li>Port physique</li>
4748 <li>Port spécifié par <directive module="core">Servername</directive></li>
4749 <li>Port par défaut</li>
4754 <p>Avec <code>UseCanonicalPhysicalPort Off</code>, on reprend
4755 l'ordre ci-dessus en supprimant "Port physique".</p>
4759 <seealso><directive module="core">UseCanonicalName</directive></seealso>
4760 <seealso><directive module="core">ServerName</directive></seealso>
4761 <seealso><directive module="mpm_common">Listen</directive></seealso>
4762 </directivesynopsis>
4764 <directivesynopsis type="section">
4765 <name>VirtualHost</name>
4766 <description>Contient des directives qui ne s'appliquent qu'à un nom
4767 d'hôte spécifique ou à une adresse IP</description>
4768 <syntax><VirtualHost
4769 <var>adresse IP</var>[:<var>port</var>] [<var>adresse
4770 IP</var>[:<var>port</var>]] ...> ...
4771 </VirtualHost></syntax>
4772 <contextlist><context>server config</context></contextlist>
4775 <p>Les balises <directive type="section">VirtualHost</directive> et
4776 <code></VirtualHost></code> permettent de rassembler un groupe
4777 de directives qui ne s'appliquent qu'à un serveur virtuel
4778 particulier. Toute directive autorisée dans un contexte de serveur
4779 virtuel peut être utilisée. Lorsque le serveur reçoit un requête
4780 pour un document hébergé par un serveur virtuel particulier, il
4781 applique les directives de configuration rassemblées dans la section
4782 <directive type="section">VirtualHost</directive>. <var>adresse
4783 IP</var> peut être une des entités suivantes, éventuellement suivies
4784 d'un caractère ':' et d'un numéro de port (ou *) :</p>
4787 <li>L'adresse IP du serveur virtuel ;</li>
4789 <li>Un nom de domaine entièrement qualifié correspondant à
4790 l'adresse IP du serveur virtuel (non recommandé) ;</li>
4792 <li>Le caractère <code>*</code>, qui agit comme un
4793 caractère générique, et correspond à toute adresse IP.</li>
4795 <li>La chaîne <code>_default_</code>, dont la signification est
4796 identique à celle du caractère <code>*</code></li>
4800 <example><title>Exemple</title>
4801 <VirtualHost 10.1.2.3:80><br />
4803 ServerAdmin webmaster@host.example.com<br />
4804 DocumentRoot /www/docs/host.example.com<br />
4805 ServerName host.example.com<br />
4806 ErrorLog logs/host.example.com-error_log<br />
4807 TransferLog logs/host.example.com-access_log<br />
4809 </VirtualHost>
4813 <p>Les adresses IPv6 doivent être entourées de crochets car dans le
4814 cas contraire, un éventuel port optionnel ne pourrait pas être
4815 déterminé. Voici un exemple de serveur virtuel avec adresse IPv6
4819 <VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80><br />
4821 ServerAdmin webmaster@host.example.com<br />
4822 DocumentRoot /www/docs/host.example.com<br />
4823 ServerName host.example.com<br />
4824 ErrorLog logs/host.example.com-error_log<br />
4825 TransferLog logs/host.example.com-access_log<br />
4827 </VirtualHost>
4830 <p>Chaque serveur virtuel doit correspondre à une adresse IP, un
4831 port ou un nom d'hôte spécifique ; dans le premier cas, le serveur
4832 doit être configuré pour recevoir les paquets IP de plusieurs
4833 adresses (si le serveur n'a qu'une interface réseau, on peut
4834 utiliser à cet effet la commande <code>ifconfig alias</code> -- si
4835 votre système d'exploitation le permet).</p>
4837 <note><title>Note</title>
4838 <p>L'utilisation de la directive <directive
4839 type="section">VirtualHost</directive> n'affecte en rien les
4840 adresses IP sur lesquelles Apache httpd est en écoute. Vous devez vous
4841 assurer que les adresses des serveurs virtuels sont bien incluses
4842 dans la liste des adresses précisées par la directive <directive
4843 module="mpm_common">Listen</directive>.</p>
4846 <p>Tout bloc <directive
4847 type="section">VirtualHost</directive> doit comporter une directive
4848 <directive module="core">ServerName</directive>. Dans le cas
4849 contraire, le serveur virtuel héritera de la valeur de la directive
4850 <directive module="core">ServerName</directive> issue de la
4851 configuration du serveur principal.</p>
4853 <p>A l'arrivée d'une requête, le serveur tente de la
4854 faire prendre en compte par la section <directive
4855 type="section">VirtualHost</directive> qui correspond le mieux en ne
4856 se basant que sur la paire adresse IP/port. Les chaînes sans
4857 caractères génériques l'emportent sur celles qui en contiennent. Si
4858 aucune correspondance du point de vue de l'adresse IP/port n'est
4859 trouvée, c'est la configuration du serveur "principal" qui sera
4860 utilisée.</p>
4862 <p>Si plusieurs serveurs virtuels correspondent du point de vue de
4863 l'adresse IP/port, le serveur sélectionne celui qui correspond le
4864 mieux du point de vue du nom d'hôte de la requête. Si aucune
4865 correspondance du point de vue du nom d'hôte n'est trouvée, c'est le
4866 premier serveur virtuel dont l'adresse IP/port correspond qui sera
4867 utilisé. Par voie de conséquence, le premier serveur virtuel
4868 comportant une certaine paire adresse IP/port est le serveur virtuel
4869 par défaut pour cette paire adresse IP/port.</p>
4871 <note type="warning"><title>Sécurité</title>
4872 <p>Voir le document sur les <a
4873 href="../misc/security_tips.html">conseils à propos de sécurité</a>
4874 pour une description détaillée des raisons pour lesquelles la
4875 sécurité de votre serveur pourrait être compromise, si le répertoire
4876 contenant les fichiers journaux est inscriptible par tout autre
4877 utilisateur que celui qui démarre le serveur.</p>
4880 <seealso><a href="../vhosts/">Documentation des serveurs virtuels
4881 du serveur HTTP Apache</a></seealso>
4882 <seealso><a href="../dns-caveats.html">Problèmes concernant le DNS et
4883 le serveur HTTP Apache</a></seealso>
4884 <seealso><a href="../bind.html">Définition des adresses et ports
4885 qu'utilise le serveur HTTP Apache</a></seealso>
4886 <seealso><a href="../sections.html">Comment fonctionnent les sections
4887 <Directory>, <Location> et <Files></a> pour une
4888 explication de la manière dont ces différentes sections se combinent
4889 entre elles à la réception d'une requête</seealso>
4890 </directivesynopsis>