From: Vincent Deffontaines Date: Mon, 27 Jul 2009 15:14:32 +0000 (+0000) Subject: Added a new .fr translated file. X-Git-Tag: 2.3.3~418 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=360f4525cb7285aab3a8c15a0f2a017e5bc644a0;p=apache Added a new .fr translated file. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@798186 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/mod/core.html b/docs/manual/mod/core.html index faf3d61ba8..81c99a4462 100644 --- a/docs/manual/mod/core.html +++ b/docs/manual/mod/core.html @@ -8,6 +8,10 @@ URI: core.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 +URI: core.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + URI: core.html.ja.utf8 Content-Language: ja Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/core.html.fr b/docs/manual/mod/core.html.fr new file mode 100644 index 0000000000..1f4977bdcd --- /dev/null +++ b/docs/manual/mod/core.html.fr @@ -0,0 +1,3576 @@ + + + +core - Serveur Apache HTTP + + + + + + +
<-
+
+Apache > Serveur HTTP > Documentation > Version 2.3 > Modules
+
+

Fonctionalités de Base Apache

+
+

Langues Disponibles:  de  | + en  | + fr  | + ja  | + tr 

+
+ +
Description:Fonctionnalités de base du serveur HTTP Apache toujours +disponibles
Statut:Core
+
+ + +
top
+

AcceptFilter Directive

+ + + + + + + +
Description:Permet d'optimiser la configuration d'une socket pour +l'écoute d'un protocole
Syntaxe:AcceptFilter protocole filtre +d'acceptation
Contexte:configuration du serveur
Statut:Core
Module:core
Compatibilité:Disponible depuis la version 2.3.3 sous Windows et 2.1.5 +sur les autres plates-formes.
+

Cette directive permet d'effectuer une optimisation de la socket + d'écoute d'un type de protocole en fonction du système + d'exploitation. Le but premier est de faire en sorte que le noyau + n'envoie pas de socket au processus du serveur jusqu'à ce que + des données soient reçues, ou qu'une requête HTTP complète soit mise + en tampon. Seuls les Filtres d'acceptation de FreeBSD, le filtre plus + primitif TCP_DEFER_ACCEPT sous Linux, et la version + optimisée d'AcceptEx() de Windows sont actuellement supportés.

+ +

L'utilisation de l'argument none va désactiver tout + filtre d'acceptation pour ce protocole. Ceci s'avère utile pour les + protocoles qui nécessitent l'envoi de données par le serveur en + premier, comme ftp: ou nntp:

+

AcceptFilter nntp none

+ +

Sous FreeBSD, les valeurs par défaut sont :

+

+ AcceptFilter http httpready
+ AcceptFilter https dataready +

+ +

Le filtre d'acceptation httpready met en tampon des + requêtes HTTP entières au niveau du noyau. Quand une requête + entière a été reçue, le noyau l'envoie au serveur. Voir la page de + manuel de accf_http(9) pour plus de détails. Comme les requêtes + HTTPS sont chiffrées, celles-ci n'autorisent que le filtre accf_data(9).

+ +

Sous Linux, les valeurs par défaut sont :

+

+ AcceptFilter http data
+ AcceptFilter https data +

+ +

Le filtre TCP_DEFER_ACCEPT de Linux ne supporte pas + la mise en tampon des requêtes http. Toute valeur autre que + none active le filtre TCP_DEFER_ACCEPT + pour ce protocole. Pour plus de détails, voir la page de + manuel Linux de tcp(7).

+ +

Sous Windows, les valeurs par défaut sont :

+

+ AcceptFilter http data
+ AcceptFilter https data +

+ +

Le module MPM pour Windows mpm_winnt utilise la directive + AcceptFilter comme commutateur de l'API AcceptEx(), et ne supporte + pas la mise en tampon du protocole http. Deux valeurs utilisent + l'API Windows AcceptEx() et vont recycler les sockets réseau entre + les connexions. data attend jusqu'à ce que les données + aient été transmises comme décrit plus haut, et le tampon de données + initiales ainsi que les adresses réseau finales sont tous extraits + grâce à une seule invocation d'AcceptEx(). connect + utilise l'API AcceptEx(), extrait aussi les adresses réseau finales, + mais à l'instar de none, la valeur connect + n'attend pas la transmission des données initiales.

+ +

Sous Windows, none utilise accept() au lieu + d'AcceptEx(), et ne recycle pas les sockets entre les connexions. + Ceci s'avère utile pour les interfaces réseau dont le pilote est + défectueux, ainsi que pour certains fournisseurs de réseau comme les + pilotes vpn, ou les filtres anti-spam, anti-virus ou + anti-spyware.

+ + +
+
top
+

AcceptPathInfo Directive

+ + + + + + + + + +
Description:Les ressources acceptent des informations sous forme d'un +nom de chemin en fin de requête.
Syntaxe:AcceptPathInfo On|Off|Default
Défaut:AcceptPathInfo Default
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:FileInfo
Statut:Core
Module:core
Compatibilité:Disponible dans Apache version 2.0.30 et +supérieures
+ +

Cette directive permet de définir si les requêtes contenant des + informations sous forme d'un nom de chemin suivant le nom d'un + fichier réel (ou un fichier qui n'existe pas dans un répertoire qui + existe) doivent être acceptées ou rejetées. Les scripts peuvent + accéder à cette information via la variable d'environnement + PATH_INFO.

+ +

Supposons par exemple que /test/ pointe vers un + répertoire qui ne contient que le fichier here.html. + Les requêtes pour /test/here.html/more et + /test/nothere.html/more vont affecter la valeur + /more à la variable d'environnement + PATH_INFO.

+ +

L'argument de la directive AcceptPathInfo + possède trois valeurs possibles :

+
+
Off
Une requête ne sera acceptée que si + elle correspond à un chemin qui existe. Par conséquent, une requête + contenant une information de chemin après le nom de fichier réel + comme /test/here.html/more dans l'exemple ci-dessus + renverra une erreur "404 NOT FOUND".
+ +
On
Une requête sera acceptée si la partie + principale du chemin correspond à un fichier existant. Dans + l'exemple ci-dessus /test/here.html/more, la requête + sera acceptée si /test/here.html correspond à un nom de + fichier valide.
+ +
Default
Le traitement des requêtes est + déterminé par le gestionnaire responsable de la requête. + Le gestionnaire de base pour les fichiers normaux rejette par défaut + les requêtes avec PATH_INFO. Les gestionnaires qui + servent des scripts, commecgi-script et isapi-handler, acceptent en général par + défaut les requêtes avec PATH_INFO.
+
+ +

Le but premier de la directive AcceptPathInfo est de + vous permettre de remplacer le choix du gestionnaire d'accepter ou + de rejeter PATH_INFO. Ce remplacement est nécessaire + par exemple, lorsque vous utilisez un filtre, comme INCLUDES, pour générer un contenu basé + sur PATH_INFO. Le gestionnaire de base va en général + rejeter la requête, et vous pouvez utiliser la configuration + suivante pour utiliser un tel script :

+ +

+ <Files "mes-chemins.shtml">
+ + Options +Includes
+ SetOutputFilter INCLUDES
+ AcceptPathInfo On
+
+ </Files> +

+ + +
+
top
+

AccessFileName Directive

+ + + + + + + +
Description:Nom du fichier de configuration distribué
Syntaxe:AccessFileName nom-du-fichier +[nom-du-fichier] ...
Défaut:AccessFileName .htaccess
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
+

Au cours du traitement d'une requête, le serveur recherche le + premier fichier de configuration existant à partir de la liste + de noms dans chaque répertoire composant le chemin du document, à + partir du moment où les fichiers de configuration distribués sont activés pour ce répertoire. Par exemple + :

+ +

+ AccessFileName .acl +

+ +

avant de renvoyer le document + /usr/local/web/index.html, le serveur va rechercher les + fichiers /.acl, /usr/.acl, + /usr/local/.acl et /usr/local/web/.acl + pour y lire d'éventuelles directives, à moins quelles n'aient été + désactivées avec

+ +

+ <Directory />
+ + AllowOverride None
+
+ </Directory> +

+ +

Voir aussi

+ +
+
top
+

AddDefaultCharset Directive

+ + + + + + + + +
Description:Paramètre jeu de caractères par défaut à ajouter quand le +type de contenu d'une réponse est text/plain ou +text/html
Syntaxe:AddDefaultCharset On|Off|jeu de caractères
Défaut:AddDefaultCharset Off
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:FileInfo
Statut:Core
Module:core
+

Cette directive spécifie une valeur par défaut pour le paramètre + jeu de caractères du type de média (le nom d'un codage de + caractères) à ajouter à une réponse, si et seulement si le type de + contenu de la réponse est soit text/plain, soit + text/html. Ceci va remplacer + tout jeu de caractères spécifié dans le corps de la réponse via un + élément META, bien que cet effet dépende en fait + souvent de la configuration du client de l'utilisateur. La + définition de AddDefaultCharset Off désactive cette + fonctionnalité. AddDefaultCharset On ajoute un jeu de + caractères par défaut de iso-8859-1. Toute autre valeur + peut être définie via le paramètre jeu de caractères, qui + doit appartenir à la liste des valeurs de + jeux de caractères enregistrés par l'IANA à utiliser dans les + types de média Internet (types MIME). + Par exemple :

+ +

+ AddDefaultCharset utf-8 +

+ +

La directive AddDefaultCharset ne doit + être utilisée que lorsque toutes les ressources textes auxquelles + elle s'applique possèdent le jeu de caractère spécifié, et qu'il est + trop contraignant de définir leur jeu de caractères + individuellement. Un exemple de ce type est l'ajout du paramètre jeu + de caractères aux ressources comportant un contenu généré, comme les + scripts CGI hérités qui peuvent être vulnérables à des attaques de + type cross-site scripting à cause des données utilisateurs incluses + dans leur sortie. Notez cependant qu'une meilleur solution consiste + à corriger (ou supprimer) ces scripts, car la définition d'un jeu de + caractères par défaut ne protège pas les utilisateurs qui ont activé + la fonctionnalité "Détection automatique de l'encodage des + caractères" dans leur navigateur.

+ +

Voir aussi

+ +
+
top
+

AddOutputFilterByType Directive

+ + + + + + + + +
Description:assigne un filtre en sortie pour un type de média +particulier
Syntaxe:AddOutputFilterByType filtre[;filtre...] +type de média [type de média] ...
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:FileInfo
Statut:Core
Module:core
Compatibilité:Disponible dans Apache version 2.0.33 et supérieures ; +obsolète dans les versions 2.1 et supérieures
+

Cette directive active un filtre en sortie particulier pour une + requête en fonction du type de média de la réponse. + Suite à certains problèmes évoqués plus loin, cette directive a été + abandonnée. Le même résultat peut être obtenu à l'aide du module + mod_filter.

+ +

L'exemple suivant active le filtre DEFLATE qui est + fourni par le module mod_deflate. Il va compresser + toute sortie dont le type MIME est text/html ou + text/plain avant de l'envoyer au client.

+ +

+ AddOutputFilterByType DEFLATE text/html text/plain +

+ +

Si vous voulez assigner plusieurs filtres au contenu, leurs noms + doivent être séparés par des points-virgules. On peut aussi utiliser + une directive AddOutputFilterByType pour + chacun des filtres à assigner.

+ +

La configuration ci-dessous impose le traitement de toute sortie + de script dont le type MIME est text/html en premier + lieu par le filtre INCLUDES, puis par le filtre + DEFLATE.

+ +

+ <Location /cgi-bin/>
+ + Options Includes
+ AddOutputFilterByType INCLUDES;DEFLATE text/html
+
+ </Location> +

+ +

Note

+

L'activation de filtres par la directive + AddOutputFilterByType peut partiellement + échouer, ou même complètement dans certains cas. Par exemple, + aucun filtre n'est appliqué si le type de + média n'a pas pu être déterminé. Si vous voulez vous + assurer que les filtres seront + appliqués, assignez explicitement le type de contenu à une + ressource, par exemple à l'aide d'une directive AddType ou ForceType. Il est aussi recommandé de + définir le type de contenu dans un script CGI (non-nph).

+ +
+ +

Voir aussi

+ +
+
top
+

AllowEncodedSlashes Directive

+ + + + + + + + +
Description:Détermine si les séparateurs de chemin encodés sont +autorisés à transiter dans les URLs tels quels
Syntaxe:AllowEncodedSlashes On|Off
Défaut:AllowEncodedSlashes Off
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
Compatibilité:Disponible dans Apache version 2.0.46 et +supérieures
+

La directive AllowEncodedSlashes permet + l'utilisation des URLs contenant des séparateurs de chemin encodés + (%2F pour / et même %5C pour + \ sur les systèmes concernés). Habituellement, ces URLs + sont rejetées avec un code d'erreur 404 (Not found).

+ +

Définir AllowEncodedSlashes à + On est surtout utile en association avec + PATH_INFO.

+ +

Note

+

Permettre les slashes encodés n'implique pas leur + décodage. Toutes les occurrences de %2F ou + %5C (seulement sur les systèmes concernés) + seront laissés telles quelles dans la chaîne de l'URL décodée.

+
+ +

Voir aussi

+ +
+
top
+

AllowOverride Directive

+ + + + + + + +
Description:Types de directives autorisées dans les fichiers +.htaccess
Syntaxe:AllowOverride All|None|type directive +[type directive] ...
Défaut:AllowOverride All
Contexte:répertoire
Statut:Core
Module:core
+

Lorsque le serveur trouve un fichier .htaccess (dont + le nom est défini par la directive AccessFileName), il doit savoir lesquelles + des directives placées dans ce fichier sont autorisées à modifier la + configuration préexistante.

+ +

Valable seulement dans les sections + <Directory>

+ La directive AllowOverride ne peut être + utilisée que dans les sections <Directory> définies sans expressions + rationnelles, et non dans les sections <Location>, <DirectoryMatch> ou + <Files>. +
+ +

Lorsque cette directive est définie à None, les + fichiers .htaccess sont totalement + ignorés. Dans ce cas, le serveur n'essaiera même pas de lire les + fichiers .htaccess du système de fichiers.

+ +

Lorsque cette directive est définie à All, toute + directive valable dans le Contexte .htaccess sera + autorisée dans les fichiers .htaccess.

+ +

L'argument type directive peut contenir les + groupements de directives suivants :

+ +
+
AuthConfig
+ +
+ + Permet l'utilisation des directives d'autorisation (AuthDBMGroupFile, + AuthDBMUserFile, + AuthGroupFile, + AuthName, + AuthType, AuthUserFile, Require, etc...).
+ +
FileInfo
+ +
+ Permet l'utilisation des directives qui contrôlent les types de + documents (directives ErrorDocument, ForceType, LanguagePriority, + SetHandler, SetInputFilter, SetOutputFilter, et directives du + module mod_mime Add* et Remove*), des metadonnées + des documents (Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName), des directives du + module mod_rewrite RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule) et de la directive + Action du module + mod_actions. +
+ +
Indexes
+ +
+ Permet l'utilisation des directives qui contrôlent l'indexation + des répertoires (AddDescription, + AddIcon, AddIconByEncoding, + AddIconByType, + DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, + etc...).
+ +
Limit
+ +
+ Permet l'utilisation des directives contrôlant l'accès au serveur + (Allow, Deny et Order).
+ +
Options[=Option,...]
+ +
+ Permet l'utilisation des directives contrôlant les fonctionnalités + spécifiques d'un répertoire (Options et XBitHack). "Options" doit être + suivi d'un signe "égal", puis d'une liste d'options séparées par des + virgules (pas d'espaces) ; ces options doivent être définies à + l'aide de la commande Options.
+
+ +

Exemple :

+ +

+ AllowOverride AuthConfig Indexes +

+ +

Dans l'exemple ci-dessus, toutes les directives qui ne font + partie ni du groupe AuthConfig, ni du groupe + Indexes, provoquent une erreur "internal + server error".

+ +

Pour des raisons de sécurité et de performance, ne + définissez pas AllowOverride à autre chose que + None dans votre bloc <Directory />. + Recherchez plutôt (ou créez) le bloc <Directory> + qui se réfère au répertoire où vous allez précisément placer un + fichier .htaccess.

+
+ +

Voir aussi

+ +
+
top
+

CGIMapExtension Directive

+ + + + + + + + +
Description:Technique permettant de localiser l'interpréteur des +scripts CGI
Syntaxe:CGIMapExtension chemin CGI .extension
Contexte:répertoire, .htaccess
Annuler:FileInfo
Statut:Core
Module:core
Compatibilité:NetWare uniquement
+

Cette directive permet de contrôler la manière dont Apache trouve + l'interpréteur servant à exécuter les scripts CGI. Par exemple, avec + la définition CGIMapExtension sys:\foo.nlm .foo, tous + les fichiers scripts CGI possédant une extension .foo + seront passés à l'interpréteur FOO.

+ +
+
top
+

ContentDigest Directive

+ + + + + + + + +
Description:Active la génération d'un en-tête Content-MD5 +dans la réponse HTTP
Syntaxe:ContentDigest On|Off
Défaut:ContentDigest Off
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:Options
Statut:Core
Module:core
+

Cette directive active la génération d'un en-tête + Content-MD5 selon les définitions des RFC 1864 et + 2616.

+ +

MD5 est un algorithme permettant de générer un condensé (parfois + appelé "empreinte") à partir de données d'une taille aléatoire ; le + degré de précision est tel que la moindre altération des données + d'origine entraîne une altération de l'empreinte.

+ +

L'en-tête Content-MD5 permet de vérifier + l'intégrité de la réponse HTTP dans son ensemble. Un serveur mandataire + ou un client peut utiliser cet en-tête pour rechercher une + éventuelle modification accidentelle de la réponse au cours de sa + transmission. Exemple d'en-tête :

+ +

+ Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== +

+ +

Notez que des problèmes de performances peuvent affecter votre + serveur, car l'empreinte est générée pour chaque requête (il n'y a + pas de mise en cache).

+ +

L'en-tête Content-MD5 n'est envoyé qu'avec les + documents servis par le module core, à l'exclusion + de tout autre module. Ainsi, les documents SSI, les sorties de + scripts CGI, et les réponses à des requêtes partielles (byte range) + ne comportent pas cet en-tête.

+ +
+
top
+

DefaultType Directive

+ + + + + + + + + +
Description:Les seuls effets de cette directive sont des émissions +d'avertissements si sa valeur est différente de none. Dans +les versions précédentes, DefaultType permettait de spécifier un type de +média à assigner par défaut au contenu d'une réponse pour lequel aucun +autre type de média n'avait été trouvé. +
Syntaxe:DefaultType type média|none
Défaut:DefaultType none
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:FileInfo
Statut:Core
Module:core
Compatibilité:L'argument none est disponible dans les +versions d'Apache 2.2.7 et supérieures. Tous les autres choix sont +DESACTIVÉS à partir des version 2.3.x.
+

Cette directive a été désactivée. Pour la compatibilité + ascendante avec les anciens fichiers de configuration, elle peut + être spécifiée avec la valeur none, c'est à dire sans + type de médium par défaut. Par exemple :

+ +

+ DefaultType None +

+

DefaultType None n'est disponible que dans les + versions d'Apache 2.2.7 et supérieures.

+ +

Utilisez le fichier de configuration mime.types et la directive + AddType pour configurer + l'assignement d'un type de médium via les extensions de fichiers, ou + la directive ForceType pour + attribuer un type de médium à des ressources spécifiques. Dans le + cas contraire, le serveur enverra sa réponse sans champ d'en-tête + Content-Type, et le destinataire devra déterminer lui-même le type + de médium.

+ +
+
top
+

Define Directive

+ + + + + + +
Description:Permet de définir l'existence d'une variable
Syntaxe:Define nom variable
Contexte:configuration du serveur
Statut:Core
Module:core
+

Cette directive produit le même effet que l'argument + -D du programme httpd.

+

Elle permet de faire basculer le fonctionnement de sections + <IfDefine> sans + avoir à modifier les arguments de l'option -D dans + aucun script de démarrage.

+ +
+
top
+

<Directory> Directive

+ + + + + + +
Description:Regroupe un ensemble de directives qui ne s'appliquent +qu'au répertoire concerné du système de fichiers et à ses +sous-répertoires
Syntaxe:<Directory chemin répertoire> +... </Directory>
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
+

Les balises <Directory> et + </Directory> permettent de regrouper un ensemble + de directives qui ne s'appliquent qu'au répertoire précisé + et à ses sous-répertoires. Toute directive + autorisée dans un contexte de répertoire peut être utilisée. + chemin répertoire est soit le chemin absolu d'un + répertoire, soit une chaîne de caractères avec caractères génériques + utilisant la comparaison Unix de style shell. Dans une chaîne de + caractères avec caractères génériques, ? correspond à + un caractère quelconque, et * à toute chaîne de + caractères. Les intervalles de caractères [] sont aussi + autorisés. Aucun caractère générique ne peut remplacer le caractère + `/', si bien que l'expression <Directory + /*/public_html> ne conviendra pas pour le chemin + * /home/user/public_html, alors que <Directory + /home/*/public_html> conviendra. Exemple :

+ +

+ <Directory /usr/local/httpd/htdocs>
+ + Options Indexes FollowSymLinks
+
+ </Directory> +

+ +
+

Soyez prudent avec l'argument chemin répertoire : il + doit correspondre exactement au chemin du système de fichier + qu'Apache utilise pour accéder aux fichiers. Les directives + comprises dans une section <Directory> ne + s'appliqueront pas aux fichiers du même répertoire auxquels on + aura accédé via un chemin différent, per exemple via un lien + symbolique.

+
+ +

Les Expressions rationnelles + peuvent aussi être utilisées en ajoutant le caractère + ~. Par exemple :

+ +

+ <Directory ~ "^/www/.*/[0-9]{3}"> +

+ +

pourra correspondre à tout répertoire situé dans /www/ et dont le + nom se compose de trois chiffres.

+ +

Si plusieurs sections <Directory> (sans expression rationnelle) + correspondent au répertoire (ou à un de ses parents) qui contient le + document, les directives de la section <Directory> dont le chemin est le plus + court sont appliquées en premier, en s'intercalant avec les + directives des fichiers .htaccess. Par + exemple, avec

+ +

+ <Directory />
+ + AllowOverride None
+
+ </Directory>
+
+ <Directory /home/>
+ + AllowOverride FileInfo
+
+ </Directory> +

+ +

l'accès au document /home/web/dir/doc.html emprunte + le chemin suivant :

+ +
    +
  • Aplication de la directive AllowOverride None + (qui désactive les fichiers .htaccess).
  • + +
  • Application de la directive AllowOverride + FileInfo (pour le répertoire /home).
  • + +
  • Application de toute directive FileInfo qui se + trouverait dans d'éventuels fichiers /home/.htaccess, + /home/web/.htaccess ou + /home/web/dir/.htaccess, dans cet ordre.
  • +
+ +

Les directives associées aux répertoires sous forme d'expressions + rationnelles ne sont prises en compte qu'une fois toutes les + directives des sections sans expressions rationnelles appliquées. + Alors, tous les répertoires avec expressions rationnelles sont + testés selon l'ordre dans lequel ils apparaissent dans le fichier de + configuration. Par exemple, avec

+ +

+ <Directory ~ abc$>
+ + # ... directives here ...
+
+ </Directory> +

+ +

la section avec expression rationnelle ne sera prise en compte + qu'après les sections <Directory> sans expression rationnelle + et les fichiers .htaccess. Alors, l'expression + rationnelle conviendra pour /home/abc/public_html/abc + et la section <Directory> + correspondante s'appliquera.

+ +

Notez que pour Apache, la politique d'accès par défaut + dans les sections <Directory /> est Allow + from All. Ceci signifie qu'Apache va servir tout fichier + correspondant à une URL. Il est recommandé de modifier cette + situation à l'aide d'un bloc du style

+ +

+ <Directory />
+ + Order Deny,Allow
+ Deny from All
+
+ </Directory> +

+ +

puis d'affiner la configuration pour les répertoires que vous + voulez rendre accessibles. Voir la page Conseils à propos de sécurité + pour plus de détails.

+ +

Les sections <Directory> se situent + dans le fichier httpd.conf. Les directives <Directory> ne peuvent pas être imbriquées + et ne sont pas autorisées dans les sections <Limit> ou <LimitExcept>.

+ +

Voir aussi

+ +
+
top
+

<DirectoryMatch> Directive

+ + + + + + +
Description:Regroupe des directives qui s'appliquent à des répertoires +du système de fichiers correspondant à une expression rationnelle et à +leurs sous-répertoires
Syntaxe:<DirectoryMatch regex> +... </DirectoryMatch>
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
+

Les balises <DirectoryMatch> + et </DirectoryMatch> permettent de regrouper un + ensemble de directives qui ne s'appliqueront qu'au répertoire + précisé et à ses sous-répertoires, comme pour la section <Directory>. Cependant, le + répertoire est précisé sous la forme d'une expression rationnelle. Par exemple :

+ +

+ <DirectoryMatch "^/www/(.+/)?[0-9]{3}"> +

+ +

conviendrait pour les sous-répertoires de /www/ dont + le nom se compose de trois chiffres.

+ +

Voir aussi

+ +
+
top
+

DocumentRoot Directive

+ + + + + + + +
Description:Racine principale de l'arborescence des documents visible +depuis Internet
Syntaxe:DocumentRoot chemin répertoire
Défaut:DocumentRoot /usr/local/apache/htdocs
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
+

Cette directive permet de définir le répertoire à partir duquel + httpd va servir les fichiers. S'il ne correspond + pas à un Alias, le chemin + de l'URL sera ajouté par le serveur à la racine des documents afin + de construire le chemin du document recherché. Exemple :

+ +

+ DocumentRoot /usr/web +

+ +

un accès à http://www.my.host.com/index.html se + réfère alors à /usr/web/index.html. Si chemin + répertoire n'est pas un chemin absolu, il est considéré comme + relatif au chemin défini par la directive ServerRoot.

+ +

Le répertoire défini par la directive + DocumentRoot ne doit pas comporter de slash + final.

+ +

Voir aussi

+ +
+
top
+

EnableMMAP Directive

+ + + + + + + + +
Description:Utilise la projection en mémoire (Memory-Mapping) pour +lire les fichiers pendant qu'ils sont servis
Syntaxe:EnableMMAP On|Off
Défaut:EnableMMAP On
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:FileInfo
Statut:Core
Module:core
+

Cette directive définit si httpd peut utiliser + la projection en mémoire (Memory-Mapping) quand il doit lire le contenu + d'un fichier pendant qu'il est servi. Par défaut, lorsque le + traitement d'une requête requiert l'accès aux données contenues dans + un fichier -- par exemple, pour servir un fichier interprété par le + serveur à l'aide de mod_include -- Apache projette + le fichier en mémoire si le système d'exploitation le permet.

+ +

Cette projection en mémoire induit parfois une amélioration des + performances. Sur certains systèmes cependant, il est préférable de + désactiver la projection en mémoire afin d'éviter certains problèmes + opérationnels :

+ +
    +
  • Sur certains systèmes multi-processeurs, la projection en + mémoire peut dégrader les performances du programme + httpd.
  • +
  • Avec un DocumentRoot monté + sur NFS, le programme httpd peut s'arrêter suite + à une erreur de segmentation si un fichier est supprimé ou tronqué + alors qu'il fait l'objet d'une projection en mémoire pour + httpd.
  • +
+ +

Pour les configurations de serveur sujettes à ce genre de + problème, il est préférable de désactiver la projection en mémoire + des fichiers servis en spécifiant :

+ +

+ EnableMMAP Off +

+ +

Pour les montages NFS, cette fonctionnalité peut être + explicitement désactivée pour les fichiers concernés en spécifiant + :

+ +

+ <Directory "/chemin vers montage NFS"> + + EnableMMAP Off + + </Directory> +

+ +
+
top
+

EnableSendfile Directive

+ + + + + + + + + +
Description:Utilise le support sendfile du noyau pour servir les +fichiers aux clients
Syntaxe:EnableSendfile On|Off
Défaut:EnableSendfile On
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:FileInfo
Statut:Core
Module:core
Compatibilité:Disponible dans les versions 2.0.44 et +supérieures
+

Cette directive définit si le programme httpd + peut utiliser le support sendfile du noyau pour transmettre le + contenu des fichiers aux clients. Par défaut, lorsque le traitement + d'une requête ne requiert pas l'accès aux données contenues dans un + fichier -- par exemple, pour la transmission d'un fichier statique + -- Apache utilise sendfile pour transmettre le contenu du fichier + sans même lire ce dernier, si le système d'exploitation le + permet.

+ +

Ce mécanisme sendfile évite la séparation des opérations de + lecture et d'envoi, ainsi que les réservations de tampons. sur + certains systèmes cependant, ou sous certains systèmes de fichiers, + il est préférable de désactiver cette fonctionnalité afin d'éviter + certains problèmes opérationnels :

+ +
    +
  • Certains systèmes peuvent présenter un support sendfile + défectueux que le système de compilation n'a pas détecté, en + particulier si les exécutables ont été compilés sur une autre + machine, puis copiés sur la première avec un support sendfile + défectueux.
  • +
  • Sous Linux, l'utilisation de sendfile induit des bogues lors de + la récupération des paquets de vérification TCP (TCP-checksum) avec + certaines cartes réseau lorsqu'on utilise IPv6.
  • +
  • Sous Linux sur Itanium, sendfile peut s'avérer incapable de + traiter les fichiers de plus de 2 Go.
  • +
  • Avec un montage réseau de DocumentRoot (par exemple NFS ou SMB), le + noyau peut s'avérer incapable de servir un fichier de ce montage + réseau en passant par son propre cache.
  • +
+ +

Pour les configurations de serveur sujettes à ce genre de + problème, il est recommandé de désactiver cette fonctionnalité en + spécifiant :

+ +

+ EnableSendfile Off +

+ +

Pour les montages NFS ou SMB, cette fonctionnalité peut être + explicitement désactivée pour les fichiers concernés en spécifiant + :

+ +

+ <Directory "/chemin vers montage réseau"> + + EnableSendfile Off + + </Directory> +

+

Veuillez noter que la configuration de la directive + EnableSendfile dans un contexte de répertoire + ou de fichier .htaccess n'est pas supportée par + mod_disk_cache. Le module ne prend en compte la + définition de EnableSendfile que dans un + contexte global. +

+ +
+
top
+

ErrorDocument Directive

+ + + + + + + + +
Description:Document que le serveur renvoie au client en cas +d'erreur
Syntaxe:ErrorDocument code erreur document
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:FileInfo
Statut:Core
Module:core
Compatibilité:La syntaxe des guillemets pour les messages textes est +différente dans Apache 2.0
+

Apache peut traiter les problèmes et les erreurs de quatre + manières,

+ +
    +
  1. afficher un simple message d'erreur au contenu fixe
  2. + +
  3. afficher un message personnalisé
  4. + +
  5. rediriger vers un chemin d'URL local pour traiter + le problème ou l'erreur
  6. + +
  7. rediriger vers une URL externe pour traiter + le problème ou l'erreur
  8. +
+ +

La première option constitue le comportement par défaut; pour + choisir une des trois autres options, il faut configurer Apache à + l'aide de la directive ErrorDocument, suivie + du code de la réponse HTTP et d'une URL ou d'un message. Apache + fournit parfois des informations supplémentaires à propos du + problème ou de l'erreur.

+ +

Les URLs peuvent commencer par un slash (/) pour les chemins web + locaux (relatifs au répertoire défini par la directive DocumentRoot), ou se présenter sous la + forme d'une URL complète que le client pourra résoudre. + Alternativement, un message à afficher par le navigateur pourra être + fourni. Exemples :

+ +

+ ErrorDocument 500 http://foo.example.com/cgi-bin/tester
+ ErrorDocument 404 /cgi-bin/bad_urls.pl
+ ErrorDocument 401 /subscription_info.html
+ ErrorDocument 403 "Désolé, vous n'avez pas l'autorisation d'accès + aujourd'hui" +

+ +

De plus, on peut spécifier la valeur spéciale default + pour indiquer l'utilisation d'un simple message d'Apache codé en + dur. Bien que non nécessaire dans des circonstances normales, la + spécification de la valeur default va permettre de + rétablir l'utilisation du simple message d'Apache codé en dur pour + les configurations qui sans cela, hériteraient d'une directive + ErrorDocument existante.

+ +

+ ErrorDocument 404 /cgi-bin/bad_urls.pl

+ <Directory /web/docs>
+ + ErrorDocument 404 default
+
+ </Directory> +

+ +

Notez que lorsque vous spécifiez une directive + ErrorDocument pointant vers une URL distante + (c'est à dire tout ce qui commence par le préfixe http), Apache va + envoyer une redirection au client afin de lui indiquer où trouver le + document, même dans le cas où ce document se trouve sur le serveur + local. Ceci a de nombreuses conséquences dont la plus importante + réside dans le fait que le client ne recevra pas le code d'erreur + original, mais au contraire un code de statut de redirection. Ceci + peut en retour semer la confusion chez les robots web et divers + clients qui tentent de déterminer la validité d'une URL en examinant + le code de statut. De plus, si vous utilisez une URL distante avec + ErrorDocument 401, le client ne saura pas qu'il doit + demander un mot de passe à l'utilisateur car il ne recevra pas le + code de statut 401. C'est pourquoi, si vous utilisez une + directive ErrorDocument 401, elle devra faire référence + à un document par le biais d'un chemin local.

+ +

Microsoft Internet Explorer (MSIE) ignore par défaut les messages + d'erreur générés par le serveur lorsqu'ils sont trop courts et + remplacent ses propres messages d'erreur "amicaux". Le seuil de + taille varie en fonction du type d'erreur, mais en général, si la + taille de votre message d'erreur est supérieure à 512 octets, il y a + peu de chances pour que MSIE l'occulte, et il sera affiché par ce + dernier. Vous trouverez d'avantage d'informations dans l'article de + la base de connaissances Microsoft Q294807.

+ +

Bien que la plupart des messages d'erreur internes originaux + puissent être remplacés, ceux-ci sont cependant conservés dans + certaines circonstances sans tenir compte de la définition de la + directive ErrorDocument. En + particulier, en cas de détection d'une requête mal formée, le + processus de traitement normal des requêtes est immédiatement + interrompu, et un message d'erreur interne est renvoyé, ceci afin de + se prémunir contre les problèmes de sécurité liés aux requêtes mal + formées.

+ +

Avant la version 2.0, les messages étaient indiqués en les + préfixant par un seul caractère guillemet isolé.

+ +

Voir aussi

+ +
+
top
+

ErrorLog Directive

+ + + + + + + +
Description:Définition du chemin du journal des erreurs
Syntaxe: ErrorLog chemin fichier|syslog[:facility]
Défaut:ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows)
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
+

La directive ErrorLog permet de définir le + nom du fichier dans lequel le serveur va journaliser toutes les + erreurs qu'il rencontre. Si le chemin fichier n'est pas + absolu, il est considéré comme relatif au chemin défini par la + directive ServerRoot.

+ +

Exemple

+ ErrorLog /var/log/httpd/error_log +

+ +

Si le chemin fichier commence par une barre verticale + (|), il est considéré comme une commande à lancer pour traiter la + journalisation de l'erreur.

+ +

Exemple

+ ErrorLog "|/usr/local/bin/erreurs_httpd" +

+ +

L'utilisation de syslog à la place d'un nom de + fichier active la journalisation via syslogd(8) si le système le + supporte. Le dispositif syslog par défaut est local7, + mais vous pouvez le modifier à l'aide de la syntaxe + syslog:facility, où facility peut + être remplacé par un des noms habituellement documentés dans la page + de man syslog(1).

+ +

Exemple

+ ErrorLog syslog:user +

+ +

SECURITE : Voir le document conseils à propos de + sécurité pour des détails sur les raisons pour lesquelles votre + sécurité peut être compromise si le répertoire contenant les + fichiers journaux présente des droits en écriture pour tout autre + utilisateur que celui sous lequel le serveur est démarré.

+

Note

+

Lors de la spécification d'un chemin de fichier sur les + plates-formes non-Unix, on doit veiller à n'utiliser que des + slashes (/), même si la plate-forme autorise l'utilisation des + anti-slashes (\). Et d'une manière générale, il est recommandé de + n'utiliser que des slashes (/) dans les fichiers de + configuration.

+
+ +

Voir aussi

+ +
+
top
+

FileETag Directive

+ + + + + + + + +
Description:Caractéristiques de fichier utilisés lors de la génération +de l'en-tête de réponse HTTP ETag
Syntaxe:FileETag composant ...
Défaut:FileETag INode MTime Size
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:FileInfo
Statut:Core
Module:core
+

+ La directive FileETag définit les + caractéristiques de fichier utilisées lors de la génération de + l'en-tête de réponse HTTP ETag (entity tag) quand le + document est contenu dans un fichier (la valeur de ETag + est utilisée dans le cadre de la gestion du cache pour préserver la + bande passante réseau). Dans les versions 1.3.22 et antérieures + d'Apache, la valeur de l'en-tête ETag se composait + toujours de l'inode du fichier, de sa taille et de sa date + de dernière modification (mtime). La directive + FileETag vous permet maintenant de choisir + quelles caractéristiques du fichier vont être utilisées, le cas + échéant. Les mots-clés reconnus sont : +

+ +
+
INode
+
Le numéro d'i-node du fichier sera inclus dans le processus de + génération
+
MTime
+
La date et l'heure auxquelles le fichier a été modifié la + dernière fois seront incluses
+
Size
+
La taille du fichier en octets sera incluse
+
All
+
Tous les champs disponibles seront utilisés. Cette définition + est équivalente à :

FileETag INode MTime + Size

+
None
+
Si le document se compose d'un fichier, aucun champ + ETag ne sera inclus dans la réponse
+
+ +

Les mots-clés INode, MTime, et + Size peuvent être préfixés par + ou + -, ce qui permet de modifier les valeurs par défaut + héritées d'un niveau de configuration plus général. Tout mot-clé + apparaissant sans aucun préfixe annule entièrement et immédiatement + les configurations héritées.

+ +

Si la configuration d'un répertoire contient + FileETag INode MTime Size, et si un de + ses sous-répertoires contient FileETag -INode, la + configuration de ce sous-répertoire (qui sera propagée vers tout + sou-répertoire qui ne la supplante pas), sera équivalente à + FileETag MTime Size.

+

Avertissement

+ Ne modifiez pas les valeurs par défaut pour les répertoires ou + localisations où WebDAV est activé et qui utilisent + mod_dav_fs comme fournisseur de stockage. + mod_dav_fs utilise + INode MTime Size comme format fixe pour les + comparaisons de champs ETag dans les requêtes + conditionnelles. Ces requêtes conditionnelles échoueront si le + format ETag est modifié via la directive + FileETag. +
+ +
+
top
+

<Files> Directive

+ + + + + + + +
Description:Contient des directives qui s'appliquent aux fichiers +précisés
Syntaxe:<Files nom fichier> ... </Files>
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:All
Statut:Core
Module:core
+

La directive <Files> limite + la portée des directives qu'elle contient aux fichiers précisés. + Elle est comparable aux directives <Directory> et <Location>. Elle doit se terminer par une + balise </Files>. Les directives contenues dans + cette section s'appliqueront à tout objet dont le nom de base (la + dernière partie du nom de fichier) correspond au fichier spécifié. + Les sections <Files> sont + traitées selon l'ordre dans lequel elles apparaissent dans le + fichier de configuration, après les sections <Directory> et la lecture des fichiers + .htaccess, mais avant les sections <Location>. Notez que les + sections <Files> peuvent être + imbriquées dans les sections <Directory> afin de restreindre la portion + du système de fichiers à laquelle ces dernières vont + s'appliquer.

+ +

L'argument filename peut contenir un nom de fichier + ou une chaîne de caractères avec caractères génériques, où + ? remplace un caractère, et * toute chaîne + de caractères. On peut aussi utiliser les Expressions rationnelles en ajoutant la + caractère ~. Par exemple :

+ +

+ <Files ~ "\.(gif|jpe?g|png)$"> +

+ +

correspondrait à la plupart des formats graphiques de l'Internet. + Il est cependant préférable d'utiliser la directive <FilesMatch>.

+ +

Notez qu'à la différence des sections <Directory> et <Location>, les sections <Files> peuvent être utilisées dans les + fichiers .htaccess. Ceci permet aux utilisateurs de + contrôler l'accès à leurs propres ressources, fichier par + fichier.

+ + +

Voir aussi

+ +
+
top
+

<FilesMatch> Directive

+ + + + + + + +
Description:Contient des directives qui s'appliquent à des fichiers +spécifiés sous la forme d'expressions rationnelles
Syntaxe:<FilesMatch expression rationnelle> ... +</FilesMatch>
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:All
Statut:Core
Module:core
+

La section <FilesMatch> + limite la portée des directives qu'elle contient aux fichiers + spécifiés, tout comme le ferait une section <Files>. Mais elle accepte aussi les + expressions rationnelles. Par + exemple :

+ +

+ <FilesMatch "\.(gif|jpe?g|png)$"> +

+ +

correspondrait à la plupart des formats graphiques de + l'Internet.

+ +

Voir aussi

+ +
+
top
+

ForceType Directive

+ + + + + + + + +
Description:Force le type de médium spécifié dans le champ d'en-tête +HTTP Content-Type pour les fichiers correspondants
Syntaxe:ForceType type médium|None
Contexte:répertoire, .htaccess
Annuler:FileInfo
Statut:Core
Module:core
Compatibilité:Intégré dans le coeur d'Apache depuis la version +2.0
+

Lorsqu'elle est placée dans un fichier .htaccess ou + une section <Directory>, <Location>, ou <Files>, cette directive force + l'identification du type MIME des fichiers spécifiés à la valeur de + l'argument type médium. Par exemple, si vous possédez un + répertoire ne contenant que des fichiers GIF, et si vous ne voulez + pas leur ajouter l'extension .gif, vous pouvez utiliser + :

+ +

+ ForceType image/gif +

+ +

Notez que cette directive l'emporte sur d'autres associations de + type de médium indirectes définies dans mime.types ou via la + directive AddType.

+ +

Vous pouvez aussi annuler toute définition plus générale de + ForceType en affectant la valeur + None à l'argument type médium :

+ +

+ # force le type MIME de tous les fichiers à image/gif:
+ <Location /images>
+ + ForceType image/gif
+
+ </Location>
+
+ # mais utilise les méthodes classiques d'attribution du type MIME + # dans le sous-répertoire suivant :
+ <Location /images/mixed>
+ + ForceType None
+
+ </Location> +

+ +
+
top
+

HostnameLookups Directive

+ + + + + + + +
Description:Active la recherche DNS sur les adresses IP des +clients
Syntaxe:HostnameLookups On|Off|Double
Défaut:HostnameLookups Off
Contexte:configuration du serveur, serveur virtuel, répertoire
Statut:Core
Module:core
+

Cette directive active la recherche DNS afin de pouvoir + journaliser les nom d'hôtes (et les passer aux programmes CGI et aux + inclusions SSI via la variable REMOTE_HOST). La valeur + Double déclenche une double recherche DNS inverse. En + d'autres termes, une fois la recherche inverse effectuée, on lance + une recherche directe sur le résultat de cette dernière. Au moins + une des adresses IP fournies par la recherche directe doit + correspondre à l'adresse originale (ce que l'on nomme + PARANOID dans la terminologie "tcpwrappers").

+ +

Quelle que soit la configuration, lorsqu'on utilise + mod_authz_host pour contrôler l'accès en fonction + du nom d'hôte, une double recherche DNS inverse est effectuée, + sécurité oblige. Notez cependant que le résultat de cette double + recherche n'est en général pas accessible, à moins que vous n'ayez + spécifié HostnameLookups Double. Par exemple, si vous + n'avez spécifié que HostnameLookups On, et si une + requête concerne un objet protégé par des restrictions en fonction + du nom d'hôte, quel que soit le résultat de la double recherche + inverse, les programmes CGI ne recevront que le résultat de la + recherche inverse simple dans la variable + REMOTE_HOST.

+ +

La valeur par défaut est Off afin de préserver le + traffic réseau des sites pour lesquels la recherche inverse n'est + pas vraiment nécessaire. Cette valeur par défaut est aussi bénéfique + pour les utilisateurs finaux car il n'ont ainsi pas à subir de temps + d'attente supplémentaires dus aux recherches DNS. Les sites + fortement chargés devraient laisser cette directive à + Off, car les recherches DNS peuvent prendre des temps + très longs. Vous pouvez éventuellement utiliser hors ligne + l'utilitaire logresolve, compilé par défaut dans + le sous-répertoire bin de votre répertoire + d'installation, afin de déterminer les noms d'hôtes associés aux + adresses IP journalisées.

+ +
+
top
+

<If> Directive

+ + + + + + + +
Description:Contient des directives qui ne s'appliquent que si une +condition est satisfaite au cours du traitement d'une +requête
Syntaxe:<If expression> ... </If>
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:All
Statut:Core
Module:core
+

La directive <If> évalue une + expression à la volée, et applique les directives qu'elle contient + si et seulement si l'expression renvoie la valeur "vrai". Par + exemple :

+ +

+ <If "$req{Host} = ''"> +

+ +

sera satisfaite dans le cas des requêtes HTTP/1.0 sans en-tête + Host:.

+ +

Vous pouvez tester la valeur de tout en-tête de requête ($req), + de tout en-tête de réponse ($resp) ou de toute variable + d'environnement ($env) dans votre expression.

+ +

Voir aussi

+ +
+
top
+

<IfDefine> Directive

+ + + + + + + +
Description:Contient des directives qui ne s'appliqueront que si un +test retourne "vrai" au démarrage du serveur
Syntaxe:<IfDefine [!]paramètre> ... + </IfDefine>
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:All
Statut:Core
Module:core
+

La section <IfDefine + test>...</IfDefine> permet de + conférer un caractère conditionnel à un ensemble de directives. Les + directives situées à l'intérieur d'une section <IfDefine> ne s'appliquent que si + test est vrai. Si test est faux, tout ce qui + se trouve entre les balises de début et de fin est ignoré.

+ +

test peut se présenter sous deux formes :

+ +
    +
  • nom paramètre
  • + +
  • !nom paramètre
  • +
+ +

Dans le premier cas, les directives situées entre les balises de + début et de fin ne s'appliqueront que si le paramètre nommé nom + paramètre est défini. Le second format inverse le test, et + dans ce cas, les directives ne s'appliqueront que si nom + paramètre n'est pas défini.

+ +

L'argument nom paramètre est une définition qui peut + être effectuée par la ligne de commande + httpd via le paramètre + -Dparamètre au démarrage du serveur, ou via la + directive Define.

+ +

Les sections <IfDefine> + peuvent être imbriquées, ce qui permet d'implémenter un test + multi-paramètres simple. Exemple :

+ +

+ httpd -DReverseProxy -DUseCache -DMemCache ...
+
+ # httpd.conf
+ <IfDefine ReverseProxy>
+ + LoadModule proxy_module modules/mod_proxy.so
+ LoadModule proxy_http_module modules/mod_proxy_http.so
+ <IfDefine UseCache>
+ + LoadModule cache_module modules/mod_cache.so
+ <IfDefine MemCache>
+ + LoadModule mem_cache_module modules/mod_mem_cache.so
+
+ </IfDefine>
+ <IfDefine !MemCache>
+ + LoadModule disk_cache_module modules/mod_disk_cache.so
+
+ </IfDefine> +
+ </IfDefine> +
+ </IfDefine> +

+ +
+
top
+

<IfModule> Directive

+ + + + + + + + +
Description:Contient des directives qui ne s'appliquent qu'en fonction +de la présence ou de l'absence d'un module spécifique
Syntaxe:<IfModule [!]fichier module|identificateur +module> ... </IfModule>
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:All
Statut:Core
Module:core
Compatibilité:Les identificateurs de modules sont disponibles dans les +versions 2.1 et supérieures.
+

La section <IfModule + test>...</IfModule> permet de conférer à + des directives un caractère conditionnel basé sur la présence d'un + module spécifique. Les directives situées dans une section + <IfModule> ne s'appliquent que + si test est vrai. Si test est faux, tout ce + qui se trouve entre les balises de début et de fin est ignoré.

+ +

test peut se présenter sous deux formes :

+ +
    +
  • module
  • + +
  • !module
  • +
+ +

Dans le premier cas, les directives situées entre les balises de + début et de fin ne s'appliquent que si le module module + est présent -- soit compilé avec le binaire httpd, soit chargé + dynamiquement via la directive LoadModule. Le second format inverse le test, et dans + ce cas, les directives ne s'appliquent que si module + n'est pas présent.

+ +

L'argument module peut contenir soit l'identificateur + du module, soit le nom du fichier source du module. Par exemple, + rewrite_module est un identificateur et + mod_rewrite.c le nom du fichier source + correspondant. Si un module comporte plusieurs fichiers sources, + utilisez le nom du fichier qui contient la chaîne de caractères + STANDARD20_MODULE_STUFF.

+ +

Les sections <IfModule> + peuvent être imbriquées, ce qui permet d'implémenter des tests + multi-modules simples.

+ +
Cette section ne doit être utilisée que si votre fichier de + configuration ne fonctionne qu'en fonction de la présence ou de + l'absence d'un module spécifique. D'une manière générale, il n'est + pas nécessaire de placer les directives à l'intérieur de sections + <IfModule>.
+ +
+
top
+

Include Directive

+ + + + + + + +
Description:Inclut d'autres fichiers de configuration dans un des +fichiers de configuration du serveur
Syntaxe:Include chemin fichier|chemin +répertoire
Contexte:configuration du serveur, serveur virtuel, répertoire
Statut:Core
Module:core
Compatibilité:Utilisation des caractères génériques depuis la version +2.0.41
+

Cette directive permet l'inclusion d'autres fichiers de + configuration dans un des fichiers de configuration du serveur.

+ +

On peut utiliser des caractères génériques de style Shell + (fnmatch()) pour inclure plusieurs fichiers en une + seule fois, selon leur ordre alphabétique. De plus, si la directive + Include pointe vers un répertoire, Apache + inclura tous les fichiers de ce répertoire et de tous ces + sous-répertoires. L'inclusion de répertoires entiers est cependant + déconseillée, car il est fréquent d'oublier des fichiers + temporaires dans un répertoire, ce qui causerait une erreur + httpd en cas d'inclusion. Pour inclure des + fichiers qui correspondent à un certain modèle, comme *.conf par + exemple, nous vous recommandons d'utiliser plutôt la syntaxe avec + caractères génériques comme ci-dessous.

+ +

Le chemin fichier spécifié peut être soit un chemin absolu, soit + un chemin relatif au répertoire défini par la directive ServerRoot.

+ +

Exemples :

+ +

+ Include /usr/local/apache2/conf/ssl.conf
+ Include /usr/local/apache2/conf/vhosts/*.conf +

+ +

ou encore, avec des chemins relatifs au répertoire défini par la + directive ServerRoot :

+ +

+ Include conf/ssl.conf
+ Include conf/vhosts/*.conf +

+ +

Voir aussi

+ +
+
top
+

KeepAlive Directive

+ + + + + + + +
Description:Active les connexions HTTP persistantes
Syntaxe:KeepAlive On|Off
Défaut:KeepAlive On
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
+

L'extension Keep-Alive de HTTP/1.0 et l'implémentation des + connexions persistantes dans HTTP/1.1 ont rendu possibles des + sessions HTTP de longue durée, ce qui permet de transmettre + plusieurs requêtes via la même connexion TCP. Dans certains cas, le + gain en rapidité pour des documents comportant de nombreuses images + peut atteindre 50%. Pour activer les connexions persistantes, + définissez KeepAlive On.

+ +

Pour les clients HTTP/1.0, les connexions persistantes ne seront + mises en oeuvre que si elles ont été spécialement demandées par un + client. De plus, une connexion persistante avec un client HTTP/1.0 + ne peut être utilisée que si la taille du contenu est connue + d'avance. Ceci implique que les contenus dynamiques comme les + sorties CGI, les pages SSI, et les listings de répertoires générés + par le serveur n'utiliseront en général pas les connexions + persistantes avec les clients HTTP/1.0. Avec les clients HTTP/1.1, + les connexions persistantes sont utilisées par défaut, sauf + instructions contraires. Si le client le demande, le transfert par + tronçons de taille fixe (chunked encoding) sera utilisé afin de + transmettre un contenu de longueur inconnue via une connexion + persistante.

+ +

Lorsqu'un client utilise une connexion persistante, elle comptera + pour une seule requête pour la directive MaxRequestsPerChild, quel + que soit le nombre de requêtes transmises via cette connexion.

+ +

Voir aussi

+ +
+
top
+

KeepAliveTimeout Directive

+ + + + + + + + +
Description:Durée pendant laquelle le serveur va attendre une requête +avant de fermer une connexion persistante
Syntaxe:KeepAliveTimeout nombre[ms]
Défaut:KeepAliveTimeout 5
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
Compatibilité:La spécification d'une valeur en millisecondes est +possible depuis les versions 2.3.2 et supérieures d'Apache
+

Le nombre de secondes pendant lesquelles Apache va attendre une + requête avant de fermer la connexion. Le délai peut être défini en + millisecondes en suffixant sa valeur par ms. La valeur du délai + spécifiée par la directive Timeout s'applique dès qu'une requête a + été reçue.

+ +

Donner une valeur trop élévée à + KeepAliveTimeout peut induire des problèmes + de performances sur les serveurs fortement chargés. Plus le délai + est élévé, plus nombreux seront les processus serveur en attente de + requêtes de la part de clients inactifs.

+ +

Dans un contexte de serveur virtuel à base de nom, c'est le délai + du premier serveur virtuel défini (le serveur par défaut) parmi un + ensemble de directives NameVirtualHost qui sera utilisé. Les + autres valeurs seront ignorées.

+ +
+
top
+

<Limit> Directive

+ + + + + + + +
Description:Limite les contrôles d'accès que la section contient à +certaines méthodes HTTP
Syntaxe:<Limit méthode [méthode] ... > ... + </Limit>
Contexte:répertoire, .htaccess
Annuler:AuthConfig, Limit
Statut:Core
Module:core
+

Les contrôles d'accès s'appliquent normalement à + toutes les méthodes d'accès, et c'est en général le + comportement souhaité. Dans le cas général, les directives + de contrôle d'accès n'ont pas à être placées dans une section + <Limit>.

+ +

La directive <Limit> a pour + but de limiter les effets des contrôles d'accès aux méthodes HTTP + spécifiées. Pour toutes les autres méthodes, les restrictions + d'accès contenues dans la section <Limit> n'auront aucun + effet. L'exemple suivant n'applique les contrôles d'accès + qu'aux méthodes POST, PUT, et + DELETE, en laissant les autres méthodes sans protection + :

+ +

+ <Limit POST PUT DELETE>
+ + Require valid-user
+
+ </Limit> +

+ +

La liste des noms de méthodes peut contenir une ou plusieurs + valeurs parmi les suivantes : GET, POST, + PUT, DELETE, CONNECT, + OPTIONS, PATCH, PROPFIND, + PROPPATCH, MKCOL, COPY, + MOVE, LOCK, et UNLOCK. + Le nom de méthode est sensible à la casse. Si la + valeur GET est présente, les requêtes HEAD + seront aussi concernées. La méthode TRACE ne peut pas + être limitée (voir la directive TraceEnable).

+ +
Une section <LimitExcept> doit toujours être préférée à + une section <Limit> pour la restriction d'accès, car une + section <LimitExcept> fournit une protection contre + les méthodes arbitraires.
+ +

Les directives <Limit> et + <LimitExcept> + peuvent être imbriquées. Dans ce cas, pour chaque niveau des + directives <Limit> ou <LimitExcept>, ces dernières + doivent restreindre l'accès pour les méthodes auxquelles les + contrôles d'accès s'appliquent.

+ +
Lorsqu'on utilise les directives <Limit> ou <LimitExcept> avec la directive Require, la première directive + Require dont la + condition est satisfaite autorise la requête, sans tenir compte de + la présence d'autres directives Require.
+ +

Par exemple, avec la configuration suivante, tous les + utilisateurs seront autorisés à effectuer des requêtes + POST, et la directive Require group + editors sera ignorée dans tous les cas :

+ +

+ <LimitExcept GET> + + Require valid-user + + </LimitExcept>
+ <Limit POST> + + Require group editors + + </Limit> +

+ +
+
top
+

<LimitExcept> Directive

+ + + + + + + +
Description:Applique les contrôles d'accès à toutes les méthodes HTTP, +sauf celles qui sont spécifiées
Syntaxe:<LimitExcept méthode [méthode] ... > ... + </LimitExcept>
Contexte:répertoire, .htaccess
Annuler:AuthConfig, Limit
Statut:Core
Module:core
+

<LimitExcept> et + </LimitExcept> permettent de regrouper des + directives de contrôle d'accès qui s'appliqueront à toutes les + méthodes d'accès HTTP qui ne font pas partie de la + liste des arguments ; en d'autres termes, elles ont un comportement + opposé à celui de la section <Limit>, et on peut les utiliser pour + contrôler aussi bien les méthodes standards que les méthodes non + standards ou non reconnues. Voir la documentation de la section + <Limit> pour plus + de détails.

+ +

Par exemple :

+ +

+ <LimitExcept POST GET>
+ + Require valid-user
+
+ </LimitExcept> +

+ + +
+
top
+

LimitInternalRecursion Directive

+ + + + + + + + +
Description:Détermine le nombre maximal de redirections internes et de +sous-requêtes imbriquées
Syntaxe:LimitInternalRecursion nombre [nombre]
Défaut:LimitInternalRecursion 10
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
Compatibilité:Disponible à partir de la version 2.0.47 d'Apache
+

Une redirection interne survient, par exemple, quand on utilise + la directive Action qui + redirige en interne la requête d'origine vers un script CGI. Une + sous-requête est le mécanisme qu'utilise Apache pour déterminer ce + qui se passerait pour un URI s'il faisait l'objet d'une requête. Par + exemple, mod_dir utilise les sous-requêtes pour + rechercher les fichiers listés dans la directive DirectoryIndex.

+ +

La directive LimitInternalRecursion permet + d'éviter un crash du serveur dû à un bouclage infini de redirections + internes ou de sous-requêtes. De tels bouclages sont dus en général + à des erreurs de configuration.

+ +

La directive accepte, comme arguments, deux limites qui sont + évaluées à chaque requête. Le premier nombre est le + nombre maximum de redirections internes qui peuvent se succéder. Le + second nombre détermine la profondeur d'imbrication + maximum des sous-requêtes. Si vous ne spécifiez qu'un seul + nombre, il sera affecté aux deux limites.

+ +

Exemple

+ LimitInternalRecursion 5 +

+ +
+
top
+

LimitRequestBody Directive

+ + + + + + + + +
Description:limite la taille maximale du corps de la requête HTTP +envoyée par le client
Syntaxe:LimitRequestBody octets
Défaut:LimitRequestBody 0
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:All
Statut:Core
Module:core
+

Cette directive spécifie la taille maximale autorisée pour le + corps d'une requête ; la valeur de l'argument octets va + de 0 (pour une taille illimitée), à 2147483647 (2Go).

+ +

La directive LimitRequestBody permet de + définir une limite pour la taille maximale autorisée du corps d'une + requête HTTP en tenant compte du contexte dans lequel la directive + a été placée (c'est à dire au niveau du serveur, d'un répertoire, + d'un fichier ou d'une localisation). Si la requête du client dépasse + cette limite, le serveur répondra par un message d'erreur et ne + traitera pas la requête. La taille du corps d'une requête normale va + varier de manière importante en fonction de la nature de la + ressource et des méthodes autorisées pour cette dernière. Les + scripts CGI utilisent souvent le corps du message pour extraire les + informations d'un formulaire. Les implémentations de la méthode + PUT nécessitent une valeur au moins aussi élevée que la + taille maximale des représentations que le serveur désire accepter + pour cette ressource.

+ +

L'administrateur du serveur peut utiliser cette directive pour + contrôler plus efficacement les comportements anormaux des requêtes + des clients, ce qui lui permettra de prévenir certaines formes + d'attaques par déni de service.

+ +

Si par exemple, vous autorisez le chargement de fichiers vers une + localisation particulière, et souhaitez limiter la taille des + fichiers chargés à 100Ko, vous pouvez utiliser la directive suivante + :

+ +

+ LimitRequestBody 102400 +

+ + +
+
top
+

LimitRequestFields Directive

+ + + + + + + +
Description:Limite le nombre de champs d'en-tête autorisés dans une +requête HTTP
Syntaxe:LimitRequestFields nombre
Défaut:LimitRequestFields 100
Contexte:configuration du serveur
Statut:Core
Module:core
+

nombre est un entier de 0 (nombre de champs illimité) + à 32767. La valeur par défaut est définie à la compilation par la + constante DEFAULT_LIMIT_REQUEST_FIELDS (100 selon la + distribution).

+ +

La directive LimitRequestFields permet à + l'administrateur du serveur de modifier le nombre maximum de champs + d'en-tête autorisés dans une requête HTTP. Pour un serveur, cette + valeur doit être supérieure au nombre de champs qu'une requête + client normale peut contenir. Le nombre de champs d'en-tête d'une + requête qu'un client utilise dépasse rarement 20, mais ce nombre + peut varier selon les implémentations des clients, et souvent en + fonction des extensions que les utilisateurs configurent dans leurs + navigateurs pour supporter la négociation de contenu détaillée. Les + extensions HTTP optionnelles utilisent souvent les + champs d'en-tête des requêtes.

+ +

L'administrateur du serveur peut utiliser cette directive pour + contrôler plus efficacement les comportements anormaux des requêtes + des clients, ce qui lui permettra de prévenir certaines formes + d'attaques par déni de service. La valeur spécifiée doit être + augmentée si les clients standards reçoivent une erreur du serveur + indiquant que la requête comportait un nombre d'en-têtes trop + important.

+ +

Par exemple :

+ +

+ LimitRequestFields 50 +

+ + +
+
top
+

LimitRequestFieldSize Directive

+ + + + + + + +
Description:Dédinit la taille maximale autorisée d'un en-tête de +requête HTTP
Syntaxe:LimitRequestFieldSize octets
Défaut:LimitRequestFieldSize 8190
Contexte:configuration du serveur
Statut:Core
Module:core
+

Cette directive permet de définir le nombre maximum + d'octets autorisés dans un en-tête de requête HTTP.

+ +

La directive LimitRequestFieldSize permet + à l'administrateur du serveur de réduire ou augmenter la taille + maximale autorisée d'un en-tête de requête HTTP. Pour un serveur, + cette valeur doit être suffisamment grande pour contenir tout + en-tête d'une requête client normale. La taille d'un champ d'en-tête + de requête normal va varier selon les implémentations des clients, + et en fonction des extensions que les utilisateurs + configurent dans leurs navigateurs pour supporter la négociation de + contenu détaillée. Les en-têtes d'authentification SPNEGO peuvent + atteindre une taille de 12392 octets.

+ +

>L'administrateur du serveur peut utiliser cette directive pour + contrôler plus efficacement les comportements anormaux des requêtes + des clients, ce qui lui permettra de prévenir certaines formes + d'attaques par déni de service.

+ +

Par exemple ::

+ +

+ LimitRequestFieldSize 4094 +

+ +
Dans des conditions normales, la valeur par défaut de cette + directive ne doit pas être modifiée.
+ + +
+
top
+

LimitRequestLine Directive

+ + + + + + + +
Description:Définit la taille maximale d'une ligne de requête +HTTP
Syntaxe:LimitRequestLine octets
Défaut:LimitRequestLine 8190
Contexte:configuration du serveur
Statut:Core
Module:core
+

Cette directive permet de définir la taille maximale autorisée + pour une ligne de requête HTTP en octets.

+ +

La directive LimitRequestLine permet à + l'administrateur du serveur de réduire ou augmenter la taille + maximale autorisée d'une ligne de requête HTTP client. Comme une + requête comporte une méthode HTTP, un URI, et une version de + protocole, la directive LimitRequestLine + impose une restriction sur la longueur maximale autorisée pour un + URI dans une requête au niveau du serveur. Pour un serveur, cette + valeur doit être suffisamment grande pour référencer les noms de + toutes ses ressources, y compris toutes informations pouvant être + ajoutées dans la partie requête d'une méthode GET.

+ +

L'administrateur du serveur peut utiliser cette directive pour + contrôler plus efficacement les comportements anormaux des requêtes + des clients, ce qui lui permettra de prévenir certaines formes + d'attaques par déni de service.

+ +

Par exemple :

+ +

+ LimitRequestLine 4094 +

+ +
Dans des conditions normales, la valeur par défaut de cette + directive ne doit pas être modifiée.
+ +
+
top
+

LimitXMLRequestBody Directive

+ + + + + + + + +
Description:Définit la taille maximale du corps d'une requête au format +XML
Syntaxe:LimitXMLRequestBody octets
Défaut:LimitXMLRequestBody 1000000
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:All
Statut:Core
Module:core
+

Taille maximale (en octets) du corps d'une requête au format XML. + Une valeur de 0 signifie qu'aucune limite n'est + imposée.

+ +

Exemple :

+ +

+ LimitXMLRequestBody 0 +

+ + +
+
top
+

<Location> Directive

+ + + + + + +
Description:N'applique les directives contenues qu'aux URLs +spécifiées
Syntaxe:<Location + chemin URL|URL> ... </Location>
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
+

La directive <Location> + limite la portée des directives contenues aux URLs définies par + l'argument URL. Elle est similaire à la directive <Directory>, et marque le + début d'une section qui se termine par une directive + </Location>. Les sections <Location> sont traitées selon l'ordre dans + lequel elles apparaissent dans le fichier de configuration, mais + après les sections <Directory> et la lecture des + fichiers .htaccess, et après les sections <Files>.

+ +

Les sections <Location> + agissent complètement en dehors du système de fichiers. Ceci a de + nombreuses conséquences. Parmi les plus importantes, on ne doit pas + utiliser les sections <Location> + pour contrôler l'accès aux répertoires du système de fichiers. Comme + plusieurs URLs peuvent correspondre au même répertoire du système de + fichiers, un tel contrôle d'accès pourrait être contourné.

+ +

Quand utiliser la section <Location>

+ +

Vous pouvez utiliser une section <Location> pour appliquer des directives à + des contenus situés en dehors du système de fichiers. Pour les + contenus situés à l'intérieur du système de fichiers, utilisez + plutôt les sections <Directory> et <Files>. <Location + /> constitue une exception et permet d'appliquer aisément + une configuration à l'ensemble du serveur.

+
+ +

Pour toutes les requêtes originales (non mandatées), l'argument + URL est un chemin d'URL de la forme + /chemin/. Aucun protocole, nom d'hôte, port, ou chaîne + de requête ne doivent apparaître. Pour les requêtes mandatées, l'URL + spécifiée doit être de la forme + protocole://nom_serveur/chemin, et vous devez inclure + le préfixe.

+ +

L'URL peut contenir des caractères génériques. Dans une chaîne + avec caractères génériques, ? correspond à un caractère + quelconque, et * à toute chaîne de caractères. Les + caractères génériques ne peuvent pas remplacer un / dans le chemin + URL.

+ +

On peut aussi utiliser les Expressions + rationnelles, moyennant l'addition d'un caractère + ~. Par exemple :

+ +

+ <Location ~ "/(extra|special)/data"> +

+ +

concernerait les URLs contenant les sous-chaîne + /extra/data ou /special/data. La directive + <LocationMatch> + présente un comportement identique à la version avec expressions + rationnelles de la directive <Location>, et son utilisation est + préférable à l'utilisation de cette dernière pour la simple raison + qu'il est difficile de distinguer ~ de - + dans la plupart des fontes.

+ +

La directive <Location> + s'utilise principalement avec la directive SetHandler. Par exemple, pour activer les + requêtes d'état, mais ne les autoriser que depuis des navigateurs + appartenant au domaine example.com, vous pouvez + utiliser :

+ +

+ <Location /status>
+ + SetHandler server-status
+ Order Deny,Allow
+ Deny from all
+ Allow from .example.com
+
+ </Location> +

+ +

Note à propos du slash (/)

+

La signification du caractère slash dépend de l'endroit où il + se trouve dans l'URL. Les utilisateurs peuvent être habitués à + son comportement dans le système de fichiers où plusieurs slashes + successifs sont souvent réduits à un slash unique (en d'autres + termes, /home///foo est identique à + /home/foo). Dans l'espace de nommage des URLs, ce + n'est cependant pas toujours le cas. Pour la directive <LocationMatch> et la + version avec expressions rationnelles de la directive <Location>, vous devez spécifier + explicitement les slashes multiples si telle est votre + intention.

+ +

Par exemple, <LocationMatch ^/abc> va + correspondre à l'URL /abc mais pas à l'URL + //abc. La directive <Location> sans expression rationnelle se comporte de + la même manière lorsqu'elle est utilisée pour des requêtes + mandatées. Par contre, lorsque la directive <Location> sans expression rationnelle + est utilisée pour des requêtes non mandatées, elle fera + correspondre implicitement les slashes multiples à des slashes + uniques. Par exemple, si vous spécifiez <Location + /abc/def>, une requête de la forme + /abc//def correspondra.

+
+ +

Voir aussi

+ +
+
top
+

<LocationMatch> Directive

+ + + + + + +
Description:N'applique les directives contenues qu'aux URLs +correspondant à une expression rationnelle
Syntaxe:<LocationMatch + regex> ... </LocationMatch>
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
+

La directive <LocationMatch> + limite la portée des directives contenues à l'URL spécifiée, de + manière identique à la directive <Location>. Mais son argument permettant de + spécifier les URLs concernées est une expression rationnelle au lieu d'une simple + chaîne de caractères. Par exemple :

+ +

+ <LocationMatch "/(extra|special)/data"> +

+ +

correspondrait à toute URL contenant les sous-chaînes + /extra/data ou /special/data.

+ +

Voir aussi

+ +
+
top
+

LogLevel Directive

+ + + + + + + +
Description:Contrôle la verbosité du journal des erreurs
Syntaxe:LogLevel niveau
Défaut:LogLevel warn
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
+

La directive LogLevel permet d'ajuster la + verbosité des messages enregistrés dans les journaux d'erreur (voir + la directive ErrorLog + directive). Les niveaux disponibles sont présentés + ci-après, par ordre de criticité décroissante :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Niveau Description Exemple
emerg Urgences - le système est inutilisable."Child cannot open lock file. Exiting"
alert Des mesures doivent être prises immédiatement."getpwuid: couldn't determine user name from uid"
crit Conditions critiques."socket: Failed to get a socket, exiting child"
error Erreurs."Premature end of script headers"
warn Avertissements."child process 1234 did not exit, sending another + SIGHUP"
notice Evènement important mais normal."httpd: caught SIGBUS, attempting to dump core in + ..."
info Informations."Server seems busy, (you may need to increase + StartServers, or Min/MaxSpareServers)..."
debug Messages de débogage."Opening config file ..."
+ +

Lorsqu'un niveau particulier est spécifié, les messages de tous + les autres niveaux de criticité supérieure seront aussi enregistrés. + Par exemple, si LogLevel info est spécifié, + les messages de niveaux notice et warn + seront aussi émis.

+ +

Il est recommandé d'utiliser un niveau crit ou + inférieur.

+ +

Par exemple :

+ +

+ LogLevel notice +

+ +

Note

+

Si la journalisation s'effectue directement dans un fichier, + les messages de niveau notice ne peuvent pas être + supprimés et sont donc toujours journalisés. Cependant, ceci ne + s'applique pas lorsque la journalisation s'effectue vers + syslog.

+
+ +
+
top
+

MaxKeepAliveRequests Directive

+ + + + + + + +
Description:Nombre de requêtes permises pour une connexion +persistante
Syntaxe:MaxKeepAliveRequests nombre
Défaut:MaxKeepAliveRequests 100
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
+

La directive MaxKeepAliveRequests permet + de limiter le nombre de requêtes autorisées par connexion lorsque + KeepAlive est à "on". Si sa + valeur est 0, le nombre de requêtes autorisées est + illimité. Il est recommandé de définir une valeur assez haute pour + des performances du serveur maximales.

+ +

Par exemple :

+ +

+ MaxKeepAliveRequests 500 +

+ +
+
top
+

NameVirtualHost Directive

+ + + + + + +
Description:Définit une adresse IP pour les serveurs virtuels à base de +nom
Syntaxe:NameVirtualHost adresse[:port]
Contexte:configuration du serveur
Statut:Core
Module:core
+ +

Une seule directive NameVirtualHost permet +d'identifier un ensemble de serveurs virtuels identiques que le serveur +va sélectionner en fonction du nom d'hôte spécifié par le +client. La directive NameVirtualHost est +obligatoire si vous souhaitez configurer des serveurs virtuels à base de nom.

+ +

Cette directive, ainsi que les directives VirtualHost correspondantes, doit comporter un +numéro de port si le serveur supporte les connexions HTTP et HTTPS.

+ +

Bien que adresse puisse contenir un nom d'hôte, il est +recommandé d'utiliser plutôt une adresse IP ou un nom d'hôte avec +caractères génériques. Une directive NameVirtualHost contenant des +caractères génériques ne peut correspondre qu'à des serveurs virtuels +qui contiennent aussi des caractères génériques dans leur argument.

+ +

Dans les cas où un pare-feu ou autre mandataire reçoit les requêtes +et les redirige sous une adresse IP différente vers le serveur, vous +devez spécifier l'adresse IP de l'interface physique de la machine qui +va servir les requêtes.

+ +

Dans l'exemple ci-dessous, les requêtes reçues sur l'interface +192.0.2.1 et le port 80 ne vont déclencher une sélection que parmi les +deux premiers serveurs virtuels. Les requêtes reçues sur le port 80 et +sur toute interface ne vont déclencher une sélection que parmi les +troisième et quatrième serveurs virtuels. D'une manière générale, +lorsque l'interface ne constitue pas un critère important de sélection, +la valeur "*:80" suffit pour les directives NameVirtualHost et +VirtualHost.

+ +

+ NameVirtualHost 192.0.2.1:80
+ NameVirtualHost *:80

+ + <VirtualHost 192.0.2.1:80>
+   ServerName namebased-a.example.com
+ </VirtualHost>
+
+ <VirtualHost 192.0.2.1:80>
+   Servername namebased-b.example.com
+ </VirtualHost>
+
+ <VirtualHost *:80>
+   ServerName namebased-c.example.com
+ </VirtualHost>
+
+ <VirtualHost *:80>
+   ServerName namebased-d.example.com
+ </VirtualHost>
+
+ +

+ +

Les adresses IPv6 doivent être entourées de crochets, comme dans + l'exemple suivant :

+ +

+ NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080 +

+ + + +

Argument de la directive <VirtualHost>

+

Notez que l'argument de la directive <VirtualHost> doit être identique à + l'argument de la directive NameVirtualHost.

+ +

+ NameVirtualHost 192.0.2.2:80
+ <VirtualHost 192.0.2.2:80>
+ # ...
+ </VirtualHost>
+

+
+ +

Voir aussi

+ +
+
top
+

Options Directive

+ + + + + + + + +
Description:Définit les fonctionnalités disponibles pour un répertoire +particulier
Syntaxe:Options + [+|-]option [[+|-]option] ...
Défaut:Options All
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:Options
Statut:Core
Module:core
+

La directive Options permet de définir + les fonctionnalités de serveur disponibles pour un répertoire + particulier.

+ +

option peut être défini à None, auquel + cas aucune fonctionnalité spécifique n'est activée, ou comprendre + une ou plusieurs des options suivantes :

+ +
+
All
+ +
Toutes les options excepté MultiViews. il s'agit + de la configuration par défaut.
+ +
ExecCGI
+ +
L'exécution de scripts CGI à l'aide du module + mod_cgi est permise.
+ +
FollowSymLinks
+ +
+ + Le serveur va suivre les liens symboliques dans le répertoire + concerné. +
+

Bien que le serveur suive les liens symboliques, il ne modifie + pas le nom de chemin concerné défini par la section + <Directory>.

+

Notez aussi que cette option est ignorée si + elle est définie dans une section <Location>.

+

Le fait d'omettre cette option ne doit pas être considéré comme + une mesure de sécurité efficace, car il existe toujours une + situation de compétition (race condition) entre l'instant où l'on + vérifie qu'un chemin n'est pas un lien symbolique, et l'instant où + l'on utilise effectivement ce chemin.

+
+ +
Includes
+ +
+ Les inclusions côté serveur (SSI) à l'aide du module + mod_include sont autorisées.
+ +
IncludesNOEXEC
+ +
+ + Les inclusions côté serveur (SSI) sont permises, mais #exec + cmd et #exec cgi sont désactivés. + L'utilisation de #include virtual pour les scripts + CGI est cependant toujours possible depuis des répertoires + définis par ScriptAlias.
+ +
Indexes
+ +
+ Si une URL requise correspond au répertoire concerné, et si aucun + DirectoryIndex (par + exemple index.html) n'est défini pour ce + répertoire, le module mod_autoindex va renvoyer + un listing formaté du répertoire.
+ +
MultiViews
+ +
+ Les vues multiples ("multiviews") à contenu négocié à l'aide du + module mod_negotiation sont autorisées.
+ +
SymLinksIfOwnerMatch
+ +
Le serveur ne suivra que les liens symboliques qui renvoient + vers un fichier ou un répertoire dont le propriétaire est le même + que celui du lien. + +

Note

Cette option est ignorée si elle est + définie dans une section <Location>.

+

Le fait d'omettre cette option ne doit pas être considéré comme + une mesure de sécurité efficace, car il existe toujours une + situation de compétition (race condition) entre l'instant où l'on + vérifie qu'un chemin n'est pas un lien symbolique, et l'instant où + l'on utilise effectivement ce chemin.

+
+
+ +

Normalement, si plusieurs directives + Options peuvent s'appliquer à un répertoire, + c'est la plus spécifique qui est utilisée et les autres sont + ignorées ; les options ne sont pas fusionnées (voir comment les sections sont + fusionnées). Elles le sont cependant si toutes les + options de la directive Options sont + précédées d'un symbole + ou -. Toute + option précédée d'un + est ajoutée à la liste des + options courantes de manière forcée et toute option précédée d'un + - est supprimée de la liste des options courantes de la + même manière.

+ +

Avertissement

+

Mélanger des Options avec + + ou - avec des Options sans + + ou - constitue une erreur de syntaxe, et + peut résulter en des comportements inattendus.

+
+ +

Par exemple, sans aucun symbole + et - + :

+ +

+ <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options Includes
+
+ </Directory> +

+ +

ici, seule l'option Includes sera prise en compte + pour le répertoire /web/docs/spec. Par contre, si la + seconde directive Options utilise les + symboles + et - :

+ +

+ <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options +Includes -Indexes
+
+ </Directory> +

+ +

alors, les options FollowSymLinks et + Includes seront prises en compte pour le répertoire + /web/docs/spec.

+ +

Note

+

L'utilisation de -IncludesNOEXEC ou + -Includes désactive complètement les inclusions côté + serveur sans tenir compte des définitions précédentes.

+
+ +

En l'absence de toute définition d'options, la valeur par défaut + est All.

+ +
+
top
+

RLimitCPU Directive

+ + + + + + + + +
Description:Limite le temps CPU alloué aux processus initiés par les +processus enfants d'Apache
Syntaxe:RLimitCPU secondes|max [secondes|max]
Défaut:Non défini ; utilise les valeurs par défaut du système +d'exploitation
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:All
Statut:Core
Module:core
+

Prend 1 ou 2 paramètres. Le premier definit la limite de + consommation de ressources pour tous les processus, et le second la + consommation de ressources maximale. Les deux paramètres peuvent + contenir soit un nombre, soit max pour indiquer au + serveur que la limite de consommation correspond à la valeur + maximale autorisée par la configuration du système d'exploitation. + Pour augmenter la consommation maximale de ressources, le serveur + doit s'exécuter en tant que root, ou se trouver dans sa + phase de démarrage.

+ +

Cette directive s'applique aux processus initiés par les + processus enfants d'Apache qui traitent les requêtes, et non aux + processus enfants eux-mêmes. Sont concernés les scripts CGI et les + commandes exec des SSI, mais en aucun cas les processus initiés par + le processus parent d'Apache comme les journalisations redirigées + vers un programme.

+ +

Les limites de ressources CPU sont exprimées en secondes par + processus.

+ +

Voir aussi

+ +
+
top
+

RLimitMEM Directive

+ + + + + + + + +
Description:Limite la mémoire allouée aux processus initiés par les +processus enfants d'Apache
Syntaxe:RLimitMEM octets|max [octets|max]
Défaut:Non défini ; utilise les valeurs par défaut du système +d'exploitation
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:All
Statut:Core
Module:core
+

Prend 1 ou 2 paramètres. Le premier definit la limite de + consommation de ressources pour tous les processus, et le second la + consommation de ressources maximale. Les deux paramètres peuvent + contenir soit un nombre, soit max pour indiquer au + serveur que la limite de consommation correspond à la valeur + maximale autorisée par la configuration du système d'exploitation. + Pour augmenter la consommation maximale de ressources, le serveur + doit s'exécuter en tant que root, ou se trouver dans sa + phase de démarrage.

+ +

Cette directive s'applique aux processus initiés par les + processus enfants d'Apache qui traitent les requêtes, et non aux + processus enfants eux-mêmes. Sont concernés les scripts CGI et les + commandes exec des SSI, mais en aucun cas les processus initiés par + le processus parent d'Apache comme les journalisations redirigées + vers un programme.

+ +

Les limites de ressources mémoire sont exprimées en octets par + processus.

+ +

Voir aussi

+ +
+
top
+

RLimitNPROC Directive

+ + + + + + + + +
Description:Limite le nombre de processus qui peuvent être initiés par +les processus initiés par les processus enfants d'Apache
Syntaxe:RLimitNPROC nombre|max [nombre|max]
Défaut:Unset; uses operating system defaults
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:All
Statut:Core
Module:core
+

Prend 1 ou 2 paramètres. Le premier definit la limite de + consommation de ressources pour tous les processus, et le second la + consommation de ressources maximale. Les deux paramètres peuvent + contenir soit un nombre, soit max pour indiquer au + serveur que la limite de consommation correspond à la valeur + maximale autorisée par la configuration du système d'exploitation. + Pour augmenter la consommation maximale de ressources, le serveur + doit s'exécuter en tant que root, ou se trouver dans sa + phase de démarrage.

+ +

Cette directive s'applique aux processus initiés par les + processus enfants d'Apache qui traitent les requêtes, et non aux + processus enfants eux-mêmes. Sont concernés les scripts CGI et les + commandes exec des SSI, mais en aucun cas les processus initiés par + le processus parent d'Apache comme les journalisations redirigées + vers un programme.

+ +

Les limites des processus contrôlent le nombre de processus par + utilisateur.

+ +

Note

+

Si les processus CGI s'exécutent sous le même + utilisateur que celui du serveur web, cette + directive va limiter le nombre de processus que le serveur + pourra lui-même créer. La présence de messages + cannot fork dans le journal des + erreurs indiquera que la limite est atteinte.

+
+ +

Voir aussi

+ +
+
top
+

ScriptInterpreterSource Directive

+ + + + + + + + + +
Description:Permet de localiser l'interpréteur des scripts +CGI
Syntaxe:ScriptInterpreterSource Registry|Registry-Strict|Script
Défaut:ScriptInterpreterSource Script
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:FileInfo
Statut:Core
Module:core
Compatibilité:Win32 seulement ; +l'option Registry-Strict est disponible dans les versions +2.0 et supérieures d'Apache
+

Cette directive permet de contrôler la méthode qu'utilise Apache + pour trouver l'interpréteur destiné à exécuter les scripts CGI. La + définition par défaut est Script : ceci indique à + Apache qu'il doit utiliser l'interpréteur précisé dans la ligne + shebang du script (la première ligne, commençant par + #!). Sur les systèmes Win32, cette ligne ressemble + souvent à ceci :

+ +

+ #!C:/Perl/bin/perl.exe +

+ +

ou simplement, dans le cas où perl est dans le + PATH :

+ +

+ #!perl +

+ +

Avec ScriptInterpreterSource Registry, Windows va + effectuer une recherche dans l'arborescence + HKEY_CLASSES_ROOT de la base de registre avec comme + mot-clé l'extension du fichier contenant le script (par exemple + .pl). C'est la commande définie par la sous-clé de + registre Shell\ExecCGI\Command ou, si elle n'existe + pas, la sous-clé Shell\Open\Command qui est utilisée + pour ouvrir le fichier du script. Si ces clés de registre ne sont + pas trouvées, Apache utilise la méthode de l'option + Script.

+ +

Sécurité

+

Soyez prudent si vous utilisez ScriptInterpreterSource + Registry avec des répertoires faisant l'objet d'un ScriptAlias, car Apache va essayer + d'exécuter tous les fichiers contenus dans + celui-ci. L'option Registry peut causer des appels de + programmes non voulus sur des fichiers non destinés à être exécutés. + Par exemple, la commande par défaut open sur les fichiers + .htm sur la plupart des systèmes Windows va lancer + Microsoft Internet Explorer ; ainsi, toute requête HTTP pour un + fichier .htm situé dans le répertoire des scripts + va lancer le navigateur en arrière-plan sur le serveur, ce qui a + toutes les chances de crasher votre système dans les minutes qui + suivent.

+
+ +

L'option Registry-Strict, apparue avec Apache 2.0, + agit de manière identique à Registry, mais n'utilise + que la sous-clé Shell\ExecCGI\Command. La présence de + la clé ExecCGI n'étant pas systématique, Elle doit être + définie manuellement dans le registre Windows et évite ainsi tout + appel de programme accidentel sur votre système.

+ +
+
top
+

ServerAdmin Directive

+ + + + + + +
Description:L'adresse électronique que le serveur inclut dans les +messages d'erreur envoyés au client
Syntaxe:ServerAdmin adresse électronique|URL
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
+

La directive ServerAdmin permet de définir + l'adresse de contact que le serveur va inclure dans tout message + d'erreur qu'il envoie au client. Si le programme httpd + ne reconnait pas l'argument fourni comme une URL, il suppose que + c'est une adresse électronique, et lui ajoute le préfixe + mailto: dans les cibles des hyperliens. Il est + cependant recommandé d'utiliser exclusivement une adresse + électronique, car de nombreux scripts CGI considèrent ceci comme + implicite. Si vous utilisez une URL, elle doit pointer vers un autre + serveur que vous contrôlez. Dans le cas contraire, les utilisateurs + seraient dans l'impossibilité de vous contacter en cas de problème.

+ +

Il peut s'avérer utile de définir une adresse dédiée à + l'administration du serveur, par exemple :

+ +

+ ServerAdmin www-admin@foo.exemple.com +

+

car les utilisateurs ne mentionnent pas systématiquement le + serveur dont ils parlent !

+ +
+
top
+

ServerAlias Directive

+ + + + + + +
Description:Autres noms d'un serveur utilisables pour atteindre des +serveurs virtuels à base de nom
Syntaxe:ServerAlias nom serveur [nom serveur] +...
Contexte:serveur virtuel
Statut:Core
Module:core
+

La directive ServerAlias permet de définir + les noms alternatifs d'un serveur utilisables pour atteindre des serveurs virtuels à base de + nom. La directive ServerAlias peut + contenir des caractères génériques, si nécessaire.

+ +

+ <VirtualHost *:80>
+ ServerName serveur.domaine.com
+ ServerAlias serveur serveur2.domaine.com serveur2
+ ServerAlias *.exemple.com
+ # ...
+ </VirtualHost> +

+ +

Voir aussi

+ +
+
top
+

ServerName Directive

+ + + + + + + +
Description:Nom d'hôte et port que le serveur utilise pour +s'authentifier lui-même
Syntaxe:ServerName [protocole://]nom de domaine +entièrement qualifié[:port]
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
Compatibilité:Dans la version 2.0, cette directive remplace la +fonctionnalité de la directive Port de la version +1.3.
+

La directive ServerName permet de définir + les protocole, nom d'hôte et port d'une requête que le serveur + utilise pour s'authentifier lui-même. Ceci est utile lors de la + création de redirections d'URLs. Par exemple, si le nom de la + machine hébergeant le serveur web est + simple.exemple.com, la machine possède l'alias + DNS www.exemple.com, et si vous voulez que le serveur + web s'identifie avec cet alias, vous devez utilisez la définition + suivante :

+ +

+ ServerName www.exemple.com:80 +

+ +

Si la directive ServerName n'est pas + définie, le serveur tente de déterminer le nom d'hôte en effectuant + une recherche DNS inverse sur son adresse IP. Si la directive + ServerName ne précise pas de port, le serveur + utilisera celui de la requête entrante. Il est recommandé de + spécifier un nom d'hôte et un port spécifiques à l'aide de la + directive ServerName pour une fiabilité + optimale et à titre préventif.

+ +

Si vous définissez des serveurs virtuels à base de + nom, une directive ServerName située à + l'intérieur d'une section <VirtualHost> spécifiera quel nom d'hôte + doit apparaître dans l'en-tête de requête Host: pour + pouvoir atteindre ce serveur virtuel.

+ + +

Parfois, le serveur s'exécute en amont d'un dispositif qui + implémente SSL, comme un mandataire inverse, un répartiteur de + charge ou un boîtier dédié SSL. Dans ce cas, spécifiez le protocole + https:// et le port auquel les clients se connectent + dans la directive ServerName, afin de + s'assurer que le serveur génère correctement ses URLs + d'auto-identification. +

+ +

Voir la description des directives UseCanonicalName et UseCanonicalPhysicalPort pour les + définitions qui permettent de déterminer si les URLs + auto-identifiantes (par exemple via le module + mod_dir) vont faire référence au port spécifié, ou + au port indiqué dans la requête du client. +

+ + +

Voir aussi

+ +
+
top
+

ServerPath Directive

+ + + + + + +
Description:Nom de chemin d'URL hérité pour un serveur virtuel à base +de nom accédé par un navigateur incompatible
Syntaxe:ServerPath chemin d'URL
Contexte:serveur virtuel
Statut:Core
Module:core
+

La directive ServerPath permet de définir + le nom de chemin d'URL hérité d'un hôte, à utiliser avec les serveurs virtuels à base de nom.

+ +

Voir aussi

+ +
+
top
+

ServerRoot Directive

+ + + + + + + +
Description:Racine du répertoire d'installation du +serveur
Syntaxe:ServerRoot chemin de répertoire
Défaut:ServerRoot /usr/local/apache
Contexte:configuration du serveur
Statut:Core
Module:core
+

La directive ServerRoot permet de définir + le répertoire dans lequel le serveur est installé. En particulier, + il contiendra les sous-répertoires conf/ et + logs/. Les chemins relatifs indiqués dans les autres + directives (comme Include ou LoadModule) seront définis par + rapport à ce répertoire.

+ +

Example

+ ServerRoot /home/httpd +

+ + +

Voir aussi

+ +
+
top
+

ServerSignature Directive

+ + + + + + + + +
Description:Définit un pied de page pour les documents générés par le +serveur
Syntaxe:ServerSignature On|Off|EMail
Défaut:ServerSignature Off
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:All
Statut:Core
Module:core
+

La directive ServerSignature permet de + définir une ligne de pied de page fixe pour les documents générés + par le serveur (messages d'erreur, listings de répertoires ftp de + mod_proxy, sorties de mod_info, + etc...). Dans le cas d'une chaîne de mandataires, l'utilisateur n'a + souvent aucun moyen de déterminer lequel des mandataires chaînés a + généré un message d'erreur, et c'est une des raisons pour lesquelles + on peut être amené à ajouter un tel pied de page.

+ +

La valeur par défaut Off supprime la ligne de pied + de page (et est ainsi compatible avec le comportement des + versions 1.2 et antérieures d'Apache). la valeur On + ajoute simplement une ligne contenant le numéro de version du + serveur ainsi que le nom du serveur virtuel issu de la directive + ServerName, alors que la valeur + EMail ajoute en plus une référence "mailto:" à + l'administrateur du document référencé issu la directive + ServerAdmin.

+ +

Après la version 2.0.44, les détails à propos du numéro de + version du serveur sont contrôlés à l'aide de la directive + ServerTokens.

+ +

Voir aussi

+ +
+
top
+

ServerTokens Directive

+ + + + + + + +
Description:Configure l'en-tête Server de la réponse +HTTP
Syntaxe:ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full
Défaut:ServerTokens Full
Contexte:configuration du serveur
Statut:Core
Module:core
+

Cette directive permet de contrôler le contenu de l'en-tête + Server inclus dans la réponse envoyée au client : cet + en-tête peut contenir le type de système d'exploitation du serveur, + ainsi que des informations à propos des modules compilés avec le + serveur.

+ +
+
ServerTokens Prod[uctOnly]
+ +
Le serveur renvoie (par exemple): Server: + Apache
+ +
ServerTokens Major
+ +
Le serveur renvoie (par exemple): Server: + Apache/2
+ +
ServerTokens Minor
+ +
Le serveur renvoie (par exemple): Server: + Apache/2.0
+ +
ServerTokens Min[imal]
+ +
Le serveur renvoie (par exemple): Server: + Apache/2.0.41
+ +
ServerTokens OS
+ +
Le serveur renvoie (par exemple): Server: + Apache/2.0.41 (Unix)
+ +
ServerTokens Full (valeur par défaut)
+ +
Le serveur renvoie (par exemple): Server: + Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2
+
+ +

Cette définition s'applique à l'ensemble du serveur et ne peut + être activée ou désactivée pour tel ou tel serveur virtuel.

+ +

Dans les versions postérieures à 2.0.44, cette directive contrôle + aussi les informations fournies par la directive ServerSignature.

+ +

Voir aussi

+ +
+
top
+

SetHandler Directive

+ + + + + + + + +
Description:Force le traitement des fichiers spécifiés par un +gestionnaire particulier
Syntaxe:SetHandler nom gestionnaire|None
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:FileInfo
Statut:Core
Module:core
Compatibilité:Intégré dans le noyau d'Apache depuis la version +2.0
+

Lorsqu'elle se situe à l'intérieur d'un fichier + .htaccess, ou d'une section <Directory> ou <Location>, cette directive force le + traitement de tous les fichiers spécifiés par le gestionnaire défini par l'argument + nom gestionnaire. Par exemple, dans le cas d'un + répertoire dont vous voulez interpréter le contenu comme des + fichiers de règles d'images cliquables, sans tenir compte des + extensions, vous pouvez ajouter la ligne suivante dans un fichier + .htaccess de ce répertoire :

+ +

+ SetHandler imap-file +

+ +

Autre exemple : si vous voulez que le serveur affiche un + compte-rendu d'état chaque fois qu'une URL du type http://nom + serveur/status est appelée, vous pouvez ajouter ceci dans + httpd.conf :

+ +

+ <Location /status>
+ + SetHandler server-status
+
+ </Location> +

+ +

Vous pouvez écraser la définition antérieure d'une directive + SetHandler en utilisant la valeur + None.

+

Note : comme SetHandler l'emporte sur la + définition des gestionnaires par défaut, le comportement habituel + consistant à traiter les URLs se terminant par un slash (/) comme + des répertoires ou des fichiers index est désactivé.

+ +

Voir aussi

+ +
+
top
+

SetInputFilter Directive

+ + + + + + + +
Description:Définit les filtres par lesquels vont passer les requêtes +client et les données POST
Syntaxe:SetInputFilter filtre[;filtre...]
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:FileInfo
Statut:Core
Module:core
+

La directive SetInputFilter permet de + définir le ou les filtres par lesquels vont passer les requêtes + client et les données POST au moment où le serveur les reçoit. Cette + définition vient en ajout à tout autre filtre défini en + quelqu'endroit que ce soit, y compris via la directive AddInputFilter.

+ +

Si la directive comporte plusieurs filtres, ils doivent être + séparés par des points-virgules, et spécifiés selon l'ordre dans + lequel vous souhaitez les voir agir sur les contenus.

+ +

Voir aussi

+ +
+
top
+

SetOutputFilter Directive

+ + + + + + + +
Description:Définit les filtres par lesquels vont passer les réponses +du serveur
Syntaxe:SetOutputFilter filtre[;filtre...]
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:FileInfo
Statut:Core
Module:core
+

La directive SetOutputFilter permet de + définir les filtres par lesquels vont passer les réponses du serveur + avant d'être envoyées au client. Cette définition vient en ajout à + tout autre filtre défini en quelqu'endroit que ce soit, y compris + via la directive AddOutputFilter.

+ +

Par exemple, la configuration suivante va traiter tous les + fichiers du répertoire /www/data/ comme des inclusions + côté serveur (SSI) :

+ +

+ <Directory /www/data/>
+ + SetOutputFilter INCLUDES
+
+ </Directory> +

+ +

Si la directive comporte plusieurs filtres, ils doivent être + séparés par des points-virgules, et spécifiés selon l'ordre dans + lequel vous souhaitez les voir agir sur les contenus.

+ +

Voir aussi

+ +
+
top
+

TimeOut Directive

+ + + + + + + +
Description:Temps pendant lequel le serveur va attendre certains +évènements avant de considérer qu'une requête a échoué
Syntaxe:TimeOut secondes
Défaut:TimeOut 300
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
+

La directive TimeOut permet de définir le + temps maximum pendant lequel Apache va attendre des entrées/sorties + selon les circonstances :

+ +
    +
  1. Lors de la lecture de données en provenance du client, le + temps maximum jusqu'à l'arrivée d'un paquet TCP si le tampon est + vide.
  2. + +
  3. Lors de l'écriture de données destinées au client, le temps + maximum jusqu'à l'arrivée de l'accusé-réception d'un paquet si le + tampon d'envoi est plein.
  4. + +
  5. Avec mod_cgi, le temps d'attente maximum des + sorties d'un script CGI.
  6. + +
  7. Avec mod_ext_filter, le temps d'attente + maximum des sorties d'un processus de filtrage.
  8. + +
  9. Avec mod_proxy, la valeur du délai par défaut + si ProxyTimeout n'est + pas défini.
  10. +
+ + +
+
top
+

TraceEnable Directive

+ + + + + + + + +
Description:Détermine le comportement des requêtes +TRACE
Syntaxe:TraceEnable [on|off|extended]
Défaut:TraceEnable on
Contexte:configuration du serveur
Statut:Core
Module:core
Compatibilité:Disponible dans les versions 1.3.34, 2.0.55 et +supérieures d'Apache
+

Cette directive l'emporte sur le comportement de + TRACE pour le noyau du serveur et + mod_proxy. La définition par défaut + TraceEnable on permet des requêtes TRACE + selon la RFC 2616, qui interdit d'ajouter tout corps à la requête. + La définition TraceEnable off indique au noyau du + serveur et à mod_proxy de retourner un code + d'erreur 405 (Méthode non autorisée) au client.

+ +

En fait, et à des fins de test et de diagnostic seulement, on + peut autoriser l'ajout d'un corps de requête à l'aide de la + définition non standard TraceEnable extended. Le noyau + du serveur (dans le cas d'un serveur d'origine) va limiter la taille + du corps de requête à 64k (plus 8k pour les en-têtes de + fractionnement si Transfer-Encoding: chunked est + utilisé). Le noyau du serveur va reproduire l'ensemble des en-têtes, + y compris les en-têtes de fractionnement avec le corps de la + réponse. Dans le cas d'un serveur mandataire, la taille du corps de + requête n'est pas limitée à 64k.

+ +
+
top
+

UseCanonicalName Directive

+ + + + + + + +
Description:Définit la manière dont le serveur détermine son propre nom +et son port
Syntaxe:UseCanonicalName On|Off|DNS
Défaut:UseCanonicalName Off
Contexte:configuration du serveur, serveur virtuel, répertoire
Statut:Core
Module:core
+

Dans de nombreuses situations, Apache doit construire une URL + auto-identifiante -- c'est à dire une URL qui fait + référence au serveur lui-même. Avec UseCanonicalName + On, Apache va utiliser le nom d'hôte et le port spécifiés par + la directive ServerName pour + construire le nom canonique du serveur. Ce nom est utilisé dans + toutes les URLs auto-identifiantes, et affecté aux variables + SERVER_NAME et SERVER_PORT dans les + programmes CGI.

+ +

Avec UseCanonicalName Off, Apache va construire ses + URLs auto-identifiantes à l'aide du nom d'hôte et du port fournis + par le client, si ce dernier en a fourni un (dans la négative, + Apache utilisera le nom canonique, de la même manière que + ci-dessus). Ces valeurs sont les mêmes que celles qui sont utilisées + pour implémenter les serveurs virtuels à base de + nom, et sont disponibles avec les mêmes clients. De même, les + variables CGI SERVER_NAME et SERVER_PORT + seront affectées des valeurs fournies par le client.

+ +

Cette directive peut s'avérer utile, par exemple, sur un serveur + intranet auquel les utilisateurs se connectent en utilisant des noms + courts tels que www. Si les utilisateurs tapent un nom + court suivi d'une URL qui fait référence à un répertoire, comme + http://www/splat, sans le slash terminal, vous + remarquerez qu'Apache va les rediriger vers + http://www.domain.com/splat/. Si vous avez activé + l'authentification, ceci va obliger l'utilisateur à s'authentifier + deux fois (une première fois pour www et une seconde + fois pour www.domain.com -- voir la + foire aux questions sur ce sujet pour plus d'informations). Par + contre, si UseCanonicalName est définie à + Off, Apache redirigera l'utilisateur vers + http://www/splat/.

+ +

Pour l'hébergement virtuel en masse à base d'adresse IP, on + utilise une troisième option, UseCanonicalName + DNS, pour supporter les clients anciens qui ne + fournissent pas d'en-tête Host:. Apache effectue alors + une recherche DNS inverse sur l'adresse IP du serveur auquel le + client s'est connecté afin de construire ses URLs + auto-identifiantes.

+ +

Avertissement

+

Les programmes CGI risquent d'être perturbés par cette option + s'ils tiennent compte de la variable SERVER_NAME. Le + client est pratiquement libre de fournir la valeur qu'il veut comme + nom d'hôte. Mais si le programme CGI n'utilise + SERVER_NAME que pour construire des URLs + auto-identifiantes, il ne devrait pas y avoir de problème.

+
+ +

Voir aussi

+ +
+
top
+

UseCanonicalPhysicalPort Directive

+ + + + + + + +
Description:Définit la manière dont le serveur détermine son propre nom +et son port
Syntaxe:UseCanonicalPhysicalPort On|Off
Défaut:UseCanonicalPhysicalPort Off
Contexte:configuration du serveur, serveur virtuel, répertoire
Statut:Core
Module:core
+

Dans de nombreuses situations, Apache doit construire une URL + auto-identifiante -- c'est à dire une URL qui fait + référence au serveur lui-même. Avec UseCanonicalPhysicalPort + On, Apache va fournir le numéro de port physique réel utilisé + par la requête en tant que port potentiel, pour construire le port + canonique afin que le serveur puisse alimenter la directive + UseCanonicalName. Avec + UseCanonicalPhysicalPort Off, Apache n'utilisera pas le + numéro de port physique réel, mais au contraire se référera aux + informations de configuration pour construire un numéro de port + valide.

+ +

Note

+

L'ordre dans lequel s'effectue la recherche du port est le + suivant :

+ UseCanonicalName On

+
    +
  • Port spécifié par Servername
  • +
  • Port physique
  • +
  • Port par défaut
  • +
+ UseCanonicalName Off | DNS +
    +
  • Port spécifié dans l'en-tête Host:
  • +
  • Port physique
  • +
  • Port spécifié par Servername
  • +
  • Port par défaut
  • +
+ +

Avec UseCanonicalPhysicalPort Off, on reprend + l'ordre ci-dessus en supprimant "Port physique".

+
+ + +

Voir aussi

+ +
+
top
+

<VirtualHost> Directive

+ + + + + + +
Description:Contient des directives qui ne s'appliquent qu'à un nom +d'hôte spécifique ou à une adresse IP
Syntaxe:<VirtualHost + adresse IP[:port] [adresse + IP[:port]] ...> ... + </VirtualHost>
Contexte:configuration du serveur
Statut:Core
Module:core
+

Les balises <VirtualHost> et + </VirtualHost> permettent de rassembler un groupe + de directives qui ne s'appliquent qu'à un serveur virtuel + particulier. Toute directive autorisée dans un contexte de serveur + virtuel peut être utilisée. Lorsque le serveur reçoit un requête + pour un document hébergé par un serveur virtuel particulier, il + applique les directives de configuration rassemblées dans la section + <VirtualHost>. adresse + IP peut être :

+ +
    +
  • L'adresse IP du serveur virtuel ;
  • + +
  • Un nom de domaine entièrement qualifié correspondant à + l'adresse IP du serveur virtuel (non recommandé) ;
  • + +
  • Le caractère *, qui n'est utilisé qu'en + combinaison avec NameVirtualHost * pour intercepter + toutes les adresses IP ; ou
  • + +
  • La chaîne de caractères _default_, qui n'est + utilisée qu'avec l'hébergement virtuel à base d'adresse IP pour + intercepter les adresses IP qui ne correspondent à aucun serveur + virtuel.
  • +
+ +

Exemple

+ <VirtualHost 10.1.2.3>
+ + ServerAdmin webmaster@host.exemple.com
+ DocumentRoot /www/docs/host.exemple.com
+ ServerName host.exemple.com
+ ErrorLog logs/host.exemple.com-error_log
+ TransferLog logs/host.exemple.com-access_log
+
+ </VirtualHost> +

+ + +

Les adresses IPv6 doivent être entourées de crochets car dans le + cas contraire, un éventuel port optionnel ne pourrait pas être + déterminé. Voici un exemple de serveur virtuel avec adresse IPv6 + :

+ +

+ <VirtualHost [2001:db8::a00:20ff:fea7:ccea]>
+ + ServerAdmin webmaster@host.exemple.com
+ DocumentRoot /www/docs/host.exemple.com
+ ServerName host.exemple.com
+ ErrorLog logs/host.exemple.com-error_log
+ TransferLog logs/host.exemple.com-access_log
+
+ </VirtualHost> +

+ +

Chaque serveur virtuel doit correspondre à une adresse IP, un + port ou un nom d'hôte spécifique ; dans le premier cas, le serveur + doit être configuré pour recevoir les paquets IP de plusieurs + adresses (si le serveur n'a qu'une interface réseau, on peut + utiliser à cet effet la commande ifconfig alias -- si + votre système d'exploitation le permet).

+ +

Note

+

L'utilisation de la directive <VirtualHost> n'affecte en rien les + adresses IP sur lesquelles Apache est en écoute. Vous devez vous + assurer que les adresses des serveurs virtuels sont bien incluses + dans la liste des adresses précisées par la directive Listen.

+
+ +

Avec l'hébergement virtuel à base d'adresse IP, on peut utiliser + le nom spécial _default_, auquel cas le serveur virtuel + considéré interceptera toute adresse IP qui n'est pas explicitement + associée à un autre serveur virtuel. En l'absence de serveur virtuel + associé à _default_, et si l'adresse IP demandée ne + correspond à aucun serveur virtuel, c'est la configuration du + serveur "principal" qui sera utilisée, c'est à dire l'ensemble des + définitions situées en dehors de toute section VirtualHost.

+ +

Vous pouvez spécifier :port pour modifier le port du + serveur virtuel. S'il n'est pas spécifié, sa valeur par défaut + correspond à celle qui est définie par la dernière directive + Listen du serveur + principal. Vous pouvez aussi spécifier :* pour accepter + tous les ports associés à l'adresse du serveur virtuel (c'est une + configuration recommandée lorsqu'on utilise + _default_).

+ +

Tout bloc <VirtualHost> doit comporter une directive + ServerName. Dans le cas + contraire, le serveur virtuel héritera de la valeur de la directive + ServerName issue de la + configuration du serveur principal.

+ +

Sécurité

+

Voir le document sur les conseils à propos de sécurité + pour une description détaillée des raisons pour lesquelles la + sécurité de votre serveur pourrait être compromise, si le répertoire + contenant les fichiers journaux est inscriptible par tout autre + utilisateur que celui qui démarre le serveur.

+
+ +

Voir aussi

+ +
+
+
+

Langues Disponibles:  de  | + en  | + fr  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/docs/manual/mod/core.xml.fr b/docs/manual/mod/core.xml.fr new file mode 100644 index 0000000000..b35b241409 --- /dev/null +++ b/docs/manual/mod/core.xml.fr @@ -0,0 +1,3621 @@ + + + + + + + + + + + +core +Fonctionnalités de base du serveur HTTP Apache toujours +disponibles +Core + + +AcceptFilter +Permet d'optimiser la configuration d'une socket pour +l'écoute d'un protocole +AcceptFilter protocole filtre +d'acceptation +server config +Disponible depuis la version 2.3.3 sous Windows et 2.1.5 +sur les autres plates-formes. + + +

Cette directive permet d'effectuer une optimisation de la socket + d'écoute d'un type de protocole en fonction du système + d'exploitation. Le but premier est de faire en sorte que le noyau + n'envoie pas de socket au processus du serveur jusqu'à ce que + des données soient reçues, ou qu'une requête HTTP complète soit mise + en tampon. Seuls les Filtres d'acceptation de FreeBSD, le filtre plus + primitif TCP_DEFER_ACCEPT sous Linux, et la version + optimisée d'AcceptEx() de Windows sont actuellement supportés.

+ +

L'utilisation de l'argument none va désactiver tout + filtre d'acceptation pour ce protocole. Ceci s'avère utile pour les + protocoles qui nécessitent l'envoi de données par le serveur en + premier, comme ftp: ou nntp:

+ AcceptFilter nntp none + +

Sous FreeBSD, les valeurs par défaut sont :

+ + AcceptFilter http httpready
+ AcceptFilter https dataready +
+ +

Le filtre d'acceptation httpready met en tampon des + requêtes HTTP entières au niveau du noyau. Quand une requête + entière a été reçue, le noyau l'envoie au serveur. Voir la page de + manuel de accf_http(9) pour plus de détails. Comme les requêtes + HTTPS sont chiffrées, celles-ci n'autorisent que le filtre accf_data(9).

+ +

Sous Linux, les valeurs par défaut sont :

+ + AcceptFilter http data
+ AcceptFilter https data +
+ +

Le filtre TCP_DEFER_ACCEPT de Linux ne supporte pas + la mise en tampon des requêtes http. Toute valeur autre que + none active le filtre TCP_DEFER_ACCEPT + pour ce protocole. Pour plus de détails, voir la page de + manuel Linux de tcp(7).

+ +

Sous Windows, les valeurs par défaut sont :

+ + AcceptFilter http data
+ AcceptFilter https data +
+ +

Le module MPM pour Windows mpm_winnt utilise la directive + AcceptFilter comme commutateur de l'API AcceptEx(), et ne supporte + pas la mise en tampon du protocole http. Deux valeurs utilisent + l'API Windows AcceptEx() et vont recycler les sockets réseau entre + les connexions. data attend jusqu'à ce que les données + aient été transmises comme décrit plus haut, et le tampon de données + initiales ainsi que les adresses réseau finales sont tous extraits + grâce à une seule invocation d'AcceptEx(). connect + utilise l'API AcceptEx(), extrait aussi les adresses réseau finales, + mais à l'instar de none, la valeur connect + n'attend pas la transmission des données initiales.

+ +

Sous Windows, none utilise accept() au lieu + d'AcceptEx(), et ne recycle pas les sockets entre les connexions. + Ceci s'avère utile pour les interfaces réseau dont le pilote est + défectueux, ainsi que pour certains fournisseurs de réseau comme les + pilotes vpn, ou les filtres anti-spam, anti-virus ou + anti-spyware.

+ +
+
+ + +AcceptPathInfo +Les ressources acceptent des informations sous forme d'un +nom de chemin en fin de requête. +AcceptPathInfo On|Off|Default +AcceptPathInfo Default +server config +virtual hostdirectory +.htaccess +FileInfo +Disponible dans Apache version 2.0.30 et +supérieures + + + +

Cette directive permet de définir si les requêtes contenant des + informations sous forme d'un nom de chemin suivant le nom d'un + fichier réel (ou un fichier qui n'existe pas dans un répertoire qui + existe) doivent être acceptées ou rejetées. Les scripts peuvent + accéder à cette information via la variable d'environnement + PATH_INFO.

+ +

Supposons par exemple que /test/ pointe vers un + répertoire qui ne contient que le fichier here.html. + Les requêtes pour /test/here.html/more et + /test/nothere.html/more vont affecter la valeur + /more à la variable d'environnement + PATH_INFO.

+ +

L'argument de la directive AcceptPathInfo + possède trois valeurs possibles :

+
+
Off
Une requête ne sera acceptée que si + elle correspond à un chemin qui existe. Par conséquent, une requête + contenant une information de chemin après le nom de fichier réel + comme /test/here.html/more dans l'exemple ci-dessus + renverra une erreur "404 NOT FOUND".
+ +
On
Une requête sera acceptée si la partie + principale du chemin correspond à un fichier existant. Dans + l'exemple ci-dessus /test/here.html/more, la requête + sera acceptée si /test/here.html correspond à un nom de + fichier valide.
+ +
Default
Le traitement des requêtes est + déterminé par le gestionnaire responsable de la requête. + Le gestionnaire de base pour les fichiers normaux rejette par défaut + les requêtes avec PATH_INFO. Les gestionnaires qui + servent des scripts, commecgi-script et isapi-handler, acceptent en général par + défaut les requêtes avec PATH_INFO.
+
+ +

Le but premier de la directive AcceptPathInfo est de + vous permettre de remplacer le choix du gestionnaire d'accepter ou + de rejeter PATH_INFO. Ce remplacement est nécessaire + par exemple, lorsque vous utilisez un filtre, comme INCLUDES, pour générer un contenu basé + sur PATH_INFO. Le gestionnaire de base va en général + rejeter la requête, et vous pouvez utiliser la configuration + suivante pour utiliser un tel script :

+ + + <Files "mes-chemins.shtml">
+ + Options +Includes
+ SetOutputFilter INCLUDES
+ AcceptPathInfo On
+
+ </Files> +
+ +
+
+ + +AccessFileName +Nom du fichier de configuration distribué +AccessFileName nom-du-fichier +[nom-du-fichier] ... +AccessFileName .htaccess +server configvirtual +host + + + +

Au cours du traitement d'une requête, le serveur recherche le + premier fichier de configuration existant à partir de la liste + de noms dans chaque répertoire composant le chemin du document, à + partir du moment où les fichiers de configuration distribués sont activés pour ce répertoire. Par exemple + :

+ + + AccessFileName .acl + + +

avant de renvoyer le document + /usr/local/web/index.html, le serveur va rechercher les + fichiers /.acl, /usr/.acl, + /usr/local/.acl et /usr/local/web/.acl + pour y lire d'éventuelles directives, à moins quelles n'aient été + désactivées avec

+ + + <Directory />
+ + AllowOverride None
+
+ </Directory> +
+
+AllowOverride +Fichiers de configuration +Fichiers .htaccess +
+ + +AddDefaultCharset +Paramètre jeu de caractères par défaut à ajouter quand le +type de contenu d'une réponse est text/plain ou +text/html +AddDefaultCharset On|Off|jeu de caractères +AddDefaultCharset Off +server config +virtual hostdirectory +.htaccess +FileInfo + + +

Cette directive spécifie une valeur par défaut pour le paramètre + jeu de caractères du type de média (le nom d'un codage de + caractères) à ajouter à une réponse, si et seulement si le type de + contenu de la réponse est soit text/plain, soit + text/html. Ceci va remplacer + tout jeu de caractères spécifié dans le corps de la réponse via un + élément META, bien que cet effet dépende en fait + souvent de la configuration du client de l'utilisateur. La + définition de AddDefaultCharset Off désactive cette + fonctionnalité. AddDefaultCharset On ajoute un jeu de + caractères par défaut de iso-8859-1. Toute autre valeur + peut être définie via le paramètre jeu de caractères, qui + doit appartenir à la liste des valeurs de + jeux de caractères enregistrés par l'IANA à utiliser dans les + types de média Internet (types MIME). + Par exemple :

+ + + AddDefaultCharset utf-8 + + +

La directive AddDefaultCharset ne doit + être utilisée que lorsque toutes les ressources textes auxquelles + elle s'applique possèdent le jeu de caractère spécifié, et qu'il est + trop contraignant de définir leur jeu de caractères + individuellement. Un exemple de ce type est l'ajout du paramètre jeu + de caractères aux ressources comportant un contenu généré, comme les + scripts CGI hérités qui peuvent être vulnérables à des attaques de + type cross-site scripting à cause des données utilisateurs incluses + dans leur sortie. Notez cependant qu'une meilleur solution consiste + à corriger (ou supprimer) ces scripts, car la définition d'un jeu de + caractères par défaut ne protège pas les utilisateurs qui ont activé + la fonctionnalité "Détection automatique de l'encodage des + caractères" dans leur navigateur.

+
+AddCharset +
+ + +AddOutputFilterByType +assigne un filtre en sortie pour un type de média +particulier +AddOutputFilterByType filtre[;filtre...] +type de média [type de média] ... +server config +virtual hostdirectory +.htaccess +FileInfo +Disponible dans Apache version 2.0.33 et supérieures ; +obsolète dans les versions 2.1 et supérieures + + +

Cette directive active un filtre en sortie particulier pour une + requête en fonction du type de média de la réponse. + Suite à certains problèmes évoqués plus loin, cette directive a été + abandonnée. Le même résultat peut être obtenu à l'aide du module + mod_filter.

+ +

L'exemple suivant active le filtre DEFLATE qui est + fourni par le module mod_deflate. Il va compresser + toute sortie dont le type MIME est text/html ou + text/plain avant de l'envoyer au client.

+ + + AddOutputFilterByType DEFLATE text/html text/plain + + +

Si vous voulez assigner plusieurs filtres au contenu, leurs noms + doivent être séparés par des points-virgules. On peut aussi utiliser + une directive AddOutputFilterByType pour + chacun des filtres à assigner.

+ +

La configuration ci-dessous impose le traitement de toute sortie + de script dont le type MIME est text/html en premier + lieu par le filtre INCLUDES, puis par le filtre + DEFLATE.

+ + + <Location /cgi-bin/>
+ + Options Includes
+ AddOutputFilterByType INCLUDES;DEFLATE text/html
+
+ </Location> +
+ + Note +

L'activation de filtres par la directive + AddOutputFilterByType peut partiellement + échouer, ou même complètement dans certains cas. Par exemple, + aucun filtre n'est appliqué si le type de + média n'a pas pu être déterminé. Si vous voulez vous + assurer que les filtres seront + appliqués, assignez explicitement le type de contenu à une + ressource, par exemple à l'aide d'une directive AddType ou ForceType. Il est aussi recommandé de + définir le type de contenu dans un script CGI (non-nph).

+ +
+
+ +AddOutputFilter +SetOutputFilter +Les filtres +
+ + +AllowEncodedSlashes +Détermine si les séparateurs de chemin encodés sont +autorisés à transiter dans les URLs tels quels +AllowEncodedSlashes On|Off +AllowEncodedSlashes Off +server configvirtual +host + +Disponible dans Apache version 2.0.46 et +supérieures + + +

La directive AllowEncodedSlashes permet + l'utilisation des URLs contenant des séparateurs de chemin encodés + (%2F pour / et même %5C pour + \ sur les systèmes concernés). Habituellement, ces URLs + sont rejetées avec un code d'erreur 404 (Not found).

+ +

Définir AllowEncodedSlashes à + On est surtout utile en association avec + PATH_INFO.

+ + Note +

Permettre les slashes encodés n'implique pas leur + décodage. Toutes les occurrences de %2F ou + %5C (seulement sur les systèmes concernés) + seront laissés telles quelles dans la chaîne de l'URL décodée.

+
+
+AcceptPathInfo +
+ + +AllowOverride +Types de directives autorisées dans les fichiers +.htaccess +AllowOverride All|None|type directive +[type directive] ... +AllowOverride All +directory + + +

Lorsque le serveur trouve un fichier .htaccess (dont + le nom est défini par la directive AccessFileName), il doit savoir lesquelles + des directives placées dans ce fichier sont autorisées à modifier la + configuration préexistante.

+ + Valable seulement dans les sections + <Directory> + La directive AllowOverride ne peut être + utilisée que dans les sections Directory définies sans expressions + rationnelles, et non dans les sections Location, DirectoryMatch ou + Files. + + +

Lorsque cette directive est définie à None, les + fichiers .htaccess sont totalement + ignorés. Dans ce cas, le serveur n'essaiera même pas de lire les + fichiers .htaccess du système de fichiers.

+ +

Lorsque cette directive est définie à All, toute + directive valable dans le Contexte .htaccess sera + autorisée dans les fichiers .htaccess.

+ +

L'argument type directive peut contenir les + groupements de directives suivants :

+ +
+
AuthConfig
+ +
+ + Permet l'utilisation des directives d'autorisation (AuthDBMGroupFile, + AuthDBMUserFile, + AuthGroupFile, + AuthName, + AuthType, AuthUserFile, Require, etc...).
+ +
FileInfo
+ +
+ Permet l'utilisation des directives qui contrôlent les types de + documents (directives ErrorDocument, ForceType, LanguagePriority, + SetHandler, SetInputFilter, SetOutputFilter, et directives du + module mod_mime Add* et Remove*), des metadonnées + des documents (Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName), des directives du + module mod_rewrite RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule) et de la directive + Action du module + mod_actions. +
+ +
Indexes
+ +
+ Permet l'utilisation des directives qui contrôlent l'indexation + des répertoires (AddDescription, + AddIcon, AddIconByEncoding, + AddIconByType, + DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, + etc...).
+ +
Limit
+ +
+ Permet l'utilisation des directives contrôlant l'accès au serveur + (Allow, Deny et Order).
+ +
Options[=Option,...]
+ +
+ Permet l'utilisation des directives contrôlant les fonctionnalités + spécifiques d'un répertoire (Options et XBitHack). "Options" doit être + suivi d'un signe "égal", puis d'une liste d'options séparées par des + virgules (pas d'espaces) ; ces options doivent être définies à + l'aide de la commande Options.
+
+ +

Exemple :

+ + + AllowOverride AuthConfig Indexes + + +

Dans l'exemple ci-dessus, toutes les directives qui ne font + partie ni du groupe AuthConfig, ni du groupe + Indexes, provoquent une erreur "internal + server error".

+ +

Pour des raisons de sécurité et de performance, ne + définissez pas AllowOverride à autre chose que + None dans votre bloc <Directory />. + Recherchez plutôt (ou créez) le bloc <Directory> + qui se réfère au répertoire où vous allez précisément placer un + fichier .htaccess.

+
+
+ +AccessFileName +Configuration Files +.htaccess Files +
+ + +CGIMapExtension +Technique permettant de localiser l'interpréteur des +scripts CGI +CGIMapExtension chemin CGI .extension +directory.htaccess + +FileInfo +NetWare uniquement + + +

Cette directive permet de contrôler la manière dont Apache trouve + l'interpréteur servant à exécuter les scripts CGI. Par exemple, avec + la définition CGIMapExtension sys:\foo.nlm .foo, tous + les fichiers scripts CGI possédant une extension .foo + seront passés à l'interpréteur FOO.

+
+
+ + +ContentDigest +Active la génération d'un en-tête Content-MD5 +dans la réponse HTTP +ContentDigest On|Off +ContentDigest Off +server configvirtual +host +directory.htaccess + +Options +Expérimental + + +

Cette directive active la génération d'un en-tête + Content-MD5 selon les définitions des RFC 1864 et + 2616.

+ +

MD5 est un algorithme permettant de générer un condensé (parfois + appelé "empreinte") à partir de données d'une taille aléatoire ; le + degré de précision est tel que la moindre altération des données + d'origine entraîne une altération de l'empreinte.

+ +

L'en-tête Content-MD5 permet de vérifier + l'intégrité de la réponse HTTP dans son ensemble. Un serveur mandataire + ou un client peut utiliser cet en-tête pour rechercher une + éventuelle modification accidentelle de la réponse au cours de sa + transmission. Exemple d'en-tête :

+ + + Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== + + +

Notez que des problèmes de performances peuvent affecter votre + serveur, car l'empreinte est générée pour chaque requête (il n'y a + pas de mise en cache).

+ +

L'en-tête Content-MD5 n'est envoyé qu'avec les + documents servis par le module core, à l'exclusion + de tout autre module. Ainsi, les documents SSI, les sorties de + scripts CGI, et les réponses à des requêtes partielles (byte range) + ne comportent pas cet en-tête.

+
+
+ + +DefaultType +Les seuls effets de cette directive sont des émissions +d'avertissements si sa valeur est différente de none. Dans +les versions précédentes, DefaultType permettait de spécifier un type de +média à assigner par défaut au contenu d'une réponse pour lequel aucun +autre type de média n'avait été trouvé. + +DefaultType type média|none +DefaultType none +server configvirtual +host +directory.htaccess + +FileInfo +L'argument none est disponible dans les +versions d'Apache 2.2.7 et supérieures. Tous les autres choix sont +DESACTIVÉS à partir des version 2.3.x. + + +

Cette directive a été désactivée. Pour la compatibilité + ascendante avec les anciens fichiers de configuration, elle peut + être spécifiée avec la valeur none, c'est à dire sans + type de médium par défaut. Par exemple :

+ + + DefaultType None + +

DefaultType None n'est disponible que dans les + versions d'Apache 2.2.7 et supérieures.

+ +

Utilisez le fichier de configuration mime.types et la directive + AddType pour configurer + l'assignement d'un type de médium via les extensions de fichiers, ou + la directive ForceType pour + attribuer un type de médium à des ressources spécifiques. Dans le + cas contraire, le serveur enverra sa réponse sans champ d'en-tête + Content-Type, et le destinataire devra déterminer lui-même le type + de médium.

+
+
+ + +Define +Permet de définir l'existence d'une variable +Define nom variable +server config + + +

Cette directive produit le même effet que l'argument + -D du programme httpd.

+

Elle permet de faire basculer le fonctionnement de sections + IfDefine sans + avoir à modifier les arguments de l'option -D dans + aucun script de démarrage.

+
+
+ + +Directory +Regroupe un ensemble de directives qui ne s'appliquent +qu'au répertoire concerné du système de fichiers et à ses +sous-répertoires +<Directory chemin répertoire> +... </Directory> +server configvirtual +host + + + +

Les balises Directory et + </Directory> permettent de regrouper un ensemble + de directives qui ne s'appliquent qu'au répertoire précisé + et à ses sous-répertoires. Toute directive + autorisée dans un contexte de répertoire peut être utilisée. + chemin répertoire est soit le chemin absolu d'un + répertoire, soit une chaîne de caractères avec caractères génériques + utilisant la comparaison Unix de style shell. Dans une chaîne de + caractères avec caractères génériques, ? correspond à + un caractère quelconque, et * à toute chaîne de + caractères. Les intervalles de caractères [] sont aussi + autorisés. Aucun caractère générique ne peut remplacer le caractère + `/', si bien que l'expression <Directory + /*/public_html> ne conviendra pas pour le chemin + * /home/user/public_html, alors que <Directory + /home/*/public_html> conviendra. Exemple :

+ + + <Directory /usr/local/httpd/htdocs>
+ + Options Indexes FollowSymLinks
+
+ </Directory> +
+ + +

Soyez prudent avec l'argument chemin répertoire : il + doit correspondre exactement au chemin du système de fichier + qu'Apache utilise pour accéder aux fichiers. Les directives + comprises dans une section <Directory> ne + s'appliqueront pas aux fichiers du même répertoire auxquels on + aura accédé via un chemin différent, per exemple via un lien + symbolique.

+
+ +

Les Expressions rationnelles + peuvent aussi être utilisées en ajoutant le caractère + ~. Par exemple :

+ + + <Directory ~ "^/www/.*/[0-9]{3}"> + + +

pourra correspondre à tout répertoire situé dans /www/ et dont le + nom se compose de trois chiffres.

+ +

Si plusieurs sections Directory (sans expression rationnelle) + correspondent au répertoire (ou à un de ses parents) qui contient le + document, les directives de la section Directory dont le chemin est le plus + court sont appliquées en premier, en s'intercalant avec les + directives des fichiers .htaccess. Par + exemple, avec

+ + + <Directory />
+ + AllowOverride None
+
+ </Directory>
+
+ <Directory /home/>
+ + AllowOverride FileInfo
+
+ </Directory> +
+ +

l'accès au document /home/web/dir/doc.html emprunte + le chemin suivant :

+ +
    +
  • Aplication de la directive AllowOverride None + (qui désactive les fichiers .htaccess).
  • + +
  • Application de la directive AllowOverride + FileInfo (pour le répertoire /home).
  • + +
  • Application de toute directive FileInfo qui se + trouverait dans d'éventuels fichiers /home/.htaccess, + /home/web/.htaccess ou + /home/web/dir/.htaccess, dans cet ordre.
  • +
+ +

Les directives associées aux répertoires sous forme d'expressions + rationnelles ne sont prises en compte qu'une fois toutes les + directives des sections sans expressions rationnelles appliquées. + Alors, tous les répertoires avec expressions rationnelles sont + testés selon l'ordre dans lequel ils apparaissent dans le fichier de + configuration. Par exemple, avec

+ + + <Directory ~ abc$>
+ + # ... directives here ...
+
+ </Directory> +
+ +

la section avec expression rationnelle ne sera prise en compte + qu'après les sections Directory sans expression rationnelle + et les fichiers .htaccess. Alors, l'expression + rationnelle conviendra pour /home/abc/public_html/abc + et la section Directory + correspondante s'appliquera.

+ +

Notez que pour Apache, la politique d'accès par défaut + dans les sections <Directory /> est Allow + from All. Ceci signifie qu'Apache va servir tout fichier + correspondant à une URL. Il est recommandé de modifier cette + situation à l'aide d'un bloc du style

+ + + <Directory />
+ + Order Deny,Allow
+ Deny from All
+
+ </Directory> +
+ +

puis d'affiner la configuration pour les répertoires que vous + voulez rendre accessibles. Voir la page Conseils à propos de sécurité + pour plus de détails.

+ +

Les sections Directory se situent + dans le fichier httpd.conf. Les directives Directory ne peuvent pas être imbriquées + et ne sont pas autorisées dans les sections Limit ou LimitExcept.

+
+Comment fonctionnent les sections +<Directory>, <Location> et <Files> pour des +explications à propos de la manière dont ces différentes sections se +combinent entre elles à la réception d'une requête +
+ + +DirectoryMatch +Regroupe des directives qui s'appliquent à des répertoires +du système de fichiers correspondant à une expression rationnelle et à +leurs sous-répertoires +<DirectoryMatch regex> +... </DirectoryMatch> +server config +virtual host + + + +

Les balises DirectoryMatch + et </DirectoryMatch> permettent de regrouper un + ensemble de directives qui ne s'appliqueront qu'au répertoire + précisé et à ses sous-répertoires, comme pour la section Directory. Cependant, le + répertoire est précisé sous la forme d'une expression rationnelle. Par exemple :

+ + + <DirectoryMatch "^/www/(.+/)?[0-9]{3}"> + + +

conviendrait pour les sous-répertoires de /www/ dont + le nom se compose de trois chiffres.

+
+Directory +pour une description de la manière dont les expressions rationnelles +sont traitées en présence d'autres sections Directory sans expressions rationnelles +Comment fonctionnent les sections +<Directory>, <Location> et <Files> pour une +explication à propos de la manière dont ces différentes sections se +combinent entre elles à la réception d'une requête +
+ + +DocumentRoot +Racine principale de l'arborescence des documents visible +depuis Internet +DocumentRoot chemin répertoire +DocumentRoot /usr/local/apache/htdocs +server configvirtual +host + + + +

Cette directive permet de définir le répertoire à partir duquel + httpd va servir les fichiers. S'il ne correspond + pas à un Alias, le chemin + de l'URL sera ajouté par le serveur à la racine des documents afin + de construire le chemin du document recherché. Exemple :

+ + + DocumentRoot /usr/web + + +

un accès à http://www.my.host.com/index.html se + réfère alors à /usr/web/index.html. Si chemin + répertoire n'est pas un chemin absolu, il est considéré comme + relatif au chemin défini par la directive ServerRoot.

+ +

Le répertoire défini par la directive + DocumentRoot ne doit pas comporter de slash + final.

+
+Mise en +correspondance des URLs avec le système de fichiers +
+ + +EnableMMAP +Utilise la projection en mémoire (Memory-Mapping) pour +lire les fichiers pendant qu'ils sont servis +EnableMMAP On|Off +EnableMMAP On +server configvirtual +host +directory.htaccess + +FileInfo + + +

Cette directive définit si httpd peut utiliser + la projection en mémoire (Memory-Mapping) quand il doit lire le contenu + d'un fichier pendant qu'il est servi. Par défaut, lorsque le + traitement d'une requête requiert l'accès aux données contenues dans + un fichier -- par exemple, pour servir un fichier interprété par le + serveur à l'aide de mod_include -- Apache projette + le fichier en mémoire si le système d'exploitation le permet.

+ +

Cette projection en mémoire induit parfois une amélioration des + performances. Sur certains systèmes cependant, il est préférable de + désactiver la projection en mémoire afin d'éviter certains problèmes + opérationnels :

+ +
    +
  • Sur certains systèmes multi-processeurs, la projection en + mémoire peut dégrader les performances du programme + httpd.
  • +
  • Avec un DocumentRoot monté + sur NFS, le programme httpd peut s'arrêter suite + à une erreur de segmentation si un fichier est supprimé ou tronqué + alors qu'il fait l'objet d'une projection en mémoire pour + httpd.
  • +
+ +

Pour les configurations de serveur sujettes à ce genre de + problème, il est préférable de désactiver la projection en mémoire + des fichiers servis en spécifiant :

+ + + EnableMMAP Off + + +

Pour les montages NFS, cette fonctionnalité peut être + explicitement désactivée pour les fichiers concernés en spécifiant + :

+ + + <Directory "/chemin vers montage NFS"> + + EnableMMAP Off + + </Directory> + +
+
+ + +EnableSendfile +Utilise le support sendfile du noyau pour servir les +fichiers aux clients +EnableSendfile On|Off +EnableSendfile On +server configvirtual +host +directory.htaccess + +FileInfo +Disponible dans les versions 2.0.44 et +supérieures + + +

Cette directive définit si le programme httpd + peut utiliser le support sendfile du noyau pour transmettre le + contenu des fichiers aux clients. Par défaut, lorsque le traitement + d'une requête ne requiert pas l'accès aux données contenues dans un + fichier -- par exemple, pour la transmission d'un fichier statique + -- Apache utilise sendfile pour transmettre le contenu du fichier + sans même lire ce dernier, si le système d'exploitation le + permet.

+ +

Ce mécanisme sendfile évite la séparation des opérations de + lecture et d'envoi, ainsi que les réservations de tampons. sur + certains systèmes cependant, ou sous certains systèmes de fichiers, + il est préférable de désactiver cette fonctionnalité afin d'éviter + certains problèmes opérationnels :

+ +
    +
  • Certains systèmes peuvent présenter un support sendfile + défectueux que le système de compilation n'a pas détecté, en + particulier si les exécutables ont été compilés sur une autre + machine, puis copiés sur la première avec un support sendfile + défectueux.
  • +
  • Sous Linux, l'utilisation de sendfile induit des bogues lors de + la récupération des paquets de vérification TCP (TCP-checksum) avec + certaines cartes réseau lorsqu'on utilise IPv6.
  • +
  • Sous Linux sur Itanium, sendfile peut s'avérer incapable de + traiter les fichiers de plus de 2 Go.
  • +
  • Avec un montage réseau de DocumentRoot (par exemple NFS ou SMB), le + noyau peut s'avérer incapable de servir un fichier de ce montage + réseau en passant par son propre cache.
  • +
+ +

Pour les configurations de serveur sujettes à ce genre de + problème, il est recommandé de désactiver cette fonctionnalité en + spécifiant :

+ + + EnableSendfile Off + + +

Pour les montages NFS ou SMB, cette fonctionnalité peut être + explicitement désactivée pour les fichiers concernés en spécifiant + :

+ + + <Directory "/chemin vers montage réseau"> + + EnableSendfile Off + + </Directory> + +

Veuillez noter que la configuration de la directive + EnableSendfile dans un contexte de répertoire + ou de fichier .htaccess n'est pas supportée par + mod_disk_cache. Le module ne prend en compte la + définition de EnableSendfile que dans un + contexte global. +

+
+
+ + +ErrorDocument +Document que le serveur renvoie au client en cas +d'erreur +ErrorDocument code erreur document +server configvirtual +host +directory.htaccess + +FileInfo +La syntaxe des guillemets pour les messages textes est +différente dans Apache 2.0 + + +

Apache peut traiter les problèmes et les erreurs de quatre + manières,

+ +
    +
  1. afficher un simple message d'erreur au contenu fixe
  2. + +
  3. afficher un message personnalisé
  4. + +
  5. rediriger vers un chemin d'URL local pour traiter + le problème ou l'erreur
  6. + +
  7. rediriger vers une URL externe pour traiter + le problème ou l'erreur
  8. +
+ +

La première option constitue le comportement par défaut; pour + choisir une des trois autres options, il faut configurer Apache à + l'aide de la directive ErrorDocument, suivie + du code de la réponse HTTP et d'une URL ou d'un message. Apache + fournit parfois des informations supplémentaires à propos du + problème ou de l'erreur.

+ +

Les URLs peuvent commencer par un slash (/) pour les chemins web + locaux (relatifs au répertoire défini par la directive DocumentRoot), ou se présenter sous la + forme d'une URL complète que le client pourra résoudre. + Alternativement, un message à afficher par le navigateur pourra être + fourni. Exemples :

+ + + ErrorDocument 500 http://foo.example.com/cgi-bin/tester
+ ErrorDocument 404 /cgi-bin/bad_urls.pl
+ ErrorDocument 401 /subscription_info.html
+ ErrorDocument 403 "Désolé, vous n'avez pas l'autorisation d'accès + aujourd'hui" +
+ +

De plus, on peut spécifier la valeur spéciale default + pour indiquer l'utilisation d'un simple message d'Apache codé en + dur. Bien que non nécessaire dans des circonstances normales, la + spécification de la valeur default va permettre de + rétablir l'utilisation du simple message d'Apache codé en dur pour + les configurations qui sans cela, hériteraient d'une directive + ErrorDocument existante.

+ + + ErrorDocument 404 /cgi-bin/bad_urls.pl

+ <Directory /web/docs>
+ + ErrorDocument 404 default
+
+ </Directory> +
+ +

Notez que lorsque vous spécifiez une directive + ErrorDocument pointant vers une URL distante + (c'est à dire tout ce qui commence par le préfixe http), Apache va + envoyer une redirection au client afin de lui indiquer où trouver le + document, même dans le cas où ce document se trouve sur le serveur + local. Ceci a de nombreuses conséquences dont la plus importante + réside dans le fait que le client ne recevra pas le code d'erreur + original, mais au contraire un code de statut de redirection. Ceci + peut en retour semer la confusion chez les robots web et divers + clients qui tentent de déterminer la validité d'une URL en examinant + le code de statut. De plus, si vous utilisez une URL distante avec + ErrorDocument 401, le client ne saura pas qu'il doit + demander un mot de passe à l'utilisateur car il ne recevra pas le + code de statut 401. C'est pourquoi, si vous utilisez une + directive ErrorDocument 401, elle devra faire référence + à un document par le biais d'un chemin local.

+ +

Microsoft Internet Explorer (MSIE) ignore par défaut les messages + d'erreur générés par le serveur lorsqu'ils sont trop courts et + remplacent ses propres messages d'erreur "amicaux". Le seuil de + taille varie en fonction du type d'erreur, mais en général, si la + taille de votre message d'erreur est supérieure à 512 octets, il y a + peu de chances pour que MSIE l'occulte, et il sera affiché par ce + dernier. Vous trouverez d'avantage d'informations dans l'article de + la base de connaissances Microsoft Q294807.

+ +

Bien que la plupart des messages d'erreur internes originaux + puissent être remplacés, ceux-ci sont cependant conservés dans + certaines circonstances sans tenir compte de la définition de la + directive ErrorDocument. En + particulier, en cas de détection d'une requête mal formée, le + processus de traitement normal des requêtes est immédiatement + interrompu, et un message d'erreur interne est renvoyé, ceci afin de + se prémunir contre les problèmes de sécurité liés aux requêtes mal + formées.

+ +

Avant la version 2.0, les messages étaient indiqués en les + préfixant par un seul caractère guillemet isolé.

+
+ +documentation sur la +personnalisation des réponses +
+ + +ErrorLog +Définition du chemin du journal des erreurs + ErrorLog chemin fichier|syslog[:facility] +ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows) +server configvirtual +host + + + +

La directive ErrorLog permet de définir le + nom du fichier dans lequel le serveur va journaliser toutes les + erreurs qu'il rencontre. Si le chemin fichier n'est pas + absolu, il est considéré comme relatif au chemin défini par la + directive ServerRoot.

+ + Exemple + ErrorLog /var/log/httpd/error_log + + +

Si le chemin fichier commence par une barre verticale + (|), il est considéré comme une commande à lancer pour traiter la + journalisation de l'erreur.

+ + Exemple + ErrorLog "|/usr/local/bin/erreurs_httpd" + + +

L'utilisation de syslog à la place d'un nom de + fichier active la journalisation via syslogd(8) si le système le + supporte. Le dispositif syslog par défaut est local7, + mais vous pouvez le modifier à l'aide de la syntaxe + syslog:facility, où facility peut + être remplacé par un des noms habituellement documentés dans la page + de man syslog(1).

+ + Exemple + ErrorLog syslog:user + + +

SECURITE : Voir le document conseils à propos de + sécurité pour des détails sur les raisons pour lesquelles votre + sécurité peut être compromise si le répertoire contenant les + fichiers journaux présente des droits en écriture pour tout autre + utilisateur que celui sous lequel le serveur est démarré.

+ Note +

Lors de la spécification d'un chemin de fichier sur les + plates-formes non-Unix, on doit veiller à n'utiliser que des + slashes (/), même si la plate-forme autorise l'utilisation des + anti-slashes (\). Et d'une manière générale, il est recommandé de + n'utiliser que des slashes (/) dans les fichiers de + configuration.

+
+
+LogLevel +Fichiers journaux d'Apache +
+ + +FileETag +Caractéristiques de fichier utilisés lors de la génération +de l'en-tête de réponse HTTP ETag +FileETag composant ... +FileETag INode MTime Size +server configvirtual +host +directory.htaccess + +FileInfo + + +

+ La directive FileETag définit les + caractéristiques de fichier utilisées lors de la génération de + l'en-tête de réponse HTTP ETag (entity tag) quand le + document est contenu dans un fichier (la valeur de ETag + est utilisée dans le cadre de la gestion du cache pour préserver la + bande passante réseau). Dans les versions 1.3.22 et antérieures + d'Apache, la valeur de l'en-tête ETag se composait + toujours de l'inode du fichier, de sa taille et de sa date + de dernière modification (mtime). La directive + FileETag vous permet maintenant de choisir + quelles caractéristiques du fichier vont être utilisées, le cas + échéant. Les mots-clés reconnus sont : +

+ +
+
INode
+
Le numéro d'i-node du fichier sera inclus dans le processus de + génération
+
MTime
+
La date et l'heure auxquelles le fichier a été modifié la + dernière fois seront incluses
+
Size
+
La taille du fichier en octets sera incluse
+
All
+
Tous les champs disponibles seront utilisés. Cette définition + est équivalente à : FileETag INode MTime + Size
+
None
+
Si le document se compose d'un fichier, aucun champ + ETag ne sera inclus dans la réponse
+
+ +

Les mots-clés INode, MTime, et + Size peuvent être préfixés par + ou + -, ce qui permet de modifier les valeurs par défaut + héritées d'un niveau de configuration plus général. Tout mot-clé + apparaissant sans aucun préfixe annule entièrement et immédiatement + les configurations héritées.

+ +

Si la configuration d'un répertoire contient + FileETag INode MTime Size, et si un de + ses sous-répertoires contient FileETag -INode, la + configuration de ce sous-répertoire (qui sera propagée vers tout + sou-répertoire qui ne la supplante pas), sera équivalente à + FileETag MTime Size.

+ Avertissement + Ne modifiez pas les valeurs par défaut pour les répertoires ou + localisations où WebDAV est activé et qui utilisent + mod_dav_fs comme fournisseur de stockage. + mod_dav_fs utilise + INode MTime Size comme format fixe pour les + comparaisons de champs ETag dans les requêtes + conditionnelles. Ces requêtes conditionnelles échoueront si le + format ETag est modifié via la directive + FileETag. + +
+
+ + +Files +Contient des directives qui s'appliquent aux fichiers +précisés +<Files nom fichier> ... </Files> +server configvirtual +host +directory.htaccess + +All + + +

La directive Files limite + la portée des directives qu'elle contient aux fichiers précisés. + Elle est comparable aux directives Directory et Location. Elle doit se terminer par une + balise </Files>. Les directives contenues dans + cette section s'appliqueront à tout objet dont le nom de base (la + dernière partie du nom de fichier) correspond au fichier spécifié. + Les sections Files sont + traitées selon l'ordre dans lequel elles apparaissent dans le + fichier de configuration, après les sections Directory et la lecture des fichiers + .htaccess, mais avant les sections Location. Notez que les + sections Files peuvent être + imbriquées dans les sections Directory afin de restreindre la portion + du système de fichiers à laquelle ces dernières vont + s'appliquer.

+ +

L'argument filename peut contenir un nom de fichier + ou une chaîne de caractères avec caractères génériques, où + ? remplace un caractère, et * toute chaîne + de caractères. On peut aussi utiliser les Expressions rationnelles en ajoutant la + caractère ~. Par exemple :

+ + + <Files ~ "\.(gif|jpe?g|png)$"> + + +

correspondrait à la plupart des formats graphiques de l'Internet. + Il est cependant préférable d'utiliser la directive FilesMatch.

+ +

Notez qu'à la différence des sections Directory et Location, les sections Files peuvent être utilisées dans les + fichiers .htaccess. Ceci permet aux utilisateurs de + contrôler l'accès à leurs propres ressources, fichier par + fichier.

+ +
+Comment fonctionnent les sections +<Directory>, <Location> et <Files> pour une +explication de la manière dont ces différentes sections se combinent +entre elles à la réception d'une requête +
+ + +FilesMatch +Contient des directives qui s'appliquent à des fichiers +spécifiés sous la forme d'expressions rationnelles +<FilesMatch expression rationnelle> ... +</FilesMatch> +server configvirtual +host +directory.htaccess + +All + + +

La section FilesMatch + limite la portée des directives qu'elle contient aux fichiers + spécifiés, tout comme le ferait une section Files. Mais elle accepte aussi les + expressions rationnelles. Par + exemple :

+ + + <FilesMatch "\.(gif|jpe?g|png)$"> + + +

correspondrait à la plupart des formats graphiques de + l'Internet.

+
+ +Comment fonctionnent les sections +<Directory>, <Location> et <Files> pour une +explication de la manière dont ces différentes sections se combinent +entre elles à la réception d'une requête +
+ + +ForceType +Force le type de médium spécifié dans le champ d'en-tête +HTTP Content-Type pour les fichiers correspondants +ForceType type médium|None +directory.htaccess + +FileInfo +Intégré dans le coeur d'Apache depuis la version +2.0 + + +

Lorsqu'elle est placée dans un fichier .htaccess ou + une section Directory, Location, ou Files, cette directive force + l'identification du type MIME des fichiers spécifiés à la valeur de + l'argument type médium. Par exemple, si vous possédez un + répertoire ne contenant que des fichiers GIF, et si vous ne voulez + pas leur ajouter l'extension .gif, vous pouvez utiliser + :

+ + + ForceType image/gif + + +

Notez que cette directive l'emporte sur d'autres associations de + type de médium indirectes définies dans mime.types ou via la + directive AddType.

+ +

Vous pouvez aussi annuler toute définition plus générale de + ForceType en affectant la valeur + None à l'argument type médium :

+ + + # force le type MIME de tous les fichiers à image/gif:
+ <Location /images>
+ + ForceType image/gif
+
+ </Location>
+
+ # mais utilise les méthodes classiques d'attribution du type MIME + # dans le sous-répertoire suivant :
+ <Location /images/mixed>
+ + ForceType None
+
+ </Location> +
+
+
+ + +HostnameLookups +Active la recherche DNS sur les adresses IP des +clients +HostnameLookups On|Off|Double +HostnameLookups Off +server configvirtual +host +directory + + +

Cette directive active la recherche DNS afin de pouvoir + journaliser les nom d'hôtes (et les passer aux programmes CGI et aux + inclusions SSI via la variable REMOTE_HOST). La valeur + Double déclenche une double recherche DNS inverse. En + d'autres termes, une fois la recherche inverse effectuée, on lance + une recherche directe sur le résultat de cette dernière. Au moins + une des adresses IP fournies par la recherche directe doit + correspondre à l'adresse originale (ce que l'on nomme + PARANOID dans la terminologie "tcpwrappers").

+ +

Quelle que soit la configuration, lorsqu'on utilise + mod_authz_host pour contrôler l'accès en fonction + du nom d'hôte, une double recherche DNS inverse est effectuée, + sécurité oblige. Notez cependant que le résultat de cette double + recherche n'est en général pas accessible, à moins que vous n'ayez + spécifié HostnameLookups Double. Par exemple, si vous + n'avez spécifié que HostnameLookups On, et si une + requête concerne un objet protégé par des restrictions en fonction + du nom d'hôte, quel que soit le résultat de la double recherche + inverse, les programmes CGI ne recevront que le résultat de la + recherche inverse simple dans la variable + REMOTE_HOST.

+ +

La valeur par défaut est Off afin de préserver le + traffic réseau des sites pour lesquels la recherche inverse n'est + pas vraiment nécessaire. Cette valeur par défaut est aussi bénéfique + pour les utilisateurs finaux car il n'ont ainsi pas à subir de temps + d'attente supplémentaires dus aux recherches DNS. Les sites + fortement chargés devraient laisser cette directive à + Off, car les recherches DNS peuvent prendre des temps + très longs. Vous pouvez éventuellement utiliser hors ligne + l'utilitaire logresolve, compilé par défaut dans + le sous-répertoire bin de votre répertoire + d'installation, afin de déterminer les noms d'hôtes associés aux + adresses IP journalisées.

+
+
+ + +If +Contient des directives qui ne s'appliquent que si une +condition est satisfaite au cours du traitement d'une +requête +<If expression> ... </If> +server configvirtual +host +directory.htaccess + +All + + +

La directive If évalue une + expression à la volée, et applique les directives qu'elle contient + si et seulement si l'expression renvoie la valeur "vrai". Par + exemple :

+ + + <If "$req{Host} = ''"> + + +

sera satisfaite dans le cas des requêtes HTTP/1.0 sans en-tête + Host:.

+ +

Vous pouvez tester la valeur de tout en-tête de requête ($req), + de tout en-tête de réponse ($resp) ou de toute variable + d'environnement ($env) dans votre expression.

+
+ +Comment fonctionnent les sections +<Directory>, <Location> et <Files> pour une +explication de la manière dont ces différentes sections se combinent +entre elles à la réception d'une requête. La directive If possède la même priorité et s'utilise de +la même façon que la directive Files +
+ + +IfDefine +Contient des directives qui ne s'appliqueront que si un +test retourne "vrai" au démarrage du serveur +<IfDefine [!]paramètre> ... + </IfDefine> +server configvirtual +host +directory.htaccess + +All + + +

La section <IfDefine + test>...</IfDefine> permet de + conférer un caractère conditionnel à un ensemble de directives. Les + directives situées à l'intérieur d'une section IfDefine ne s'appliquent que si + test est vrai. Si test est faux, tout ce qui + se trouve entre les balises de début et de fin est ignoré.

+ +

test peut se présenter sous deux formes :

+ +
    +
  • nom paramètre
  • + +
  • !nom paramètre
  • +
+ +

Dans le premier cas, les directives situées entre les balises de + début et de fin ne s'appliqueront que si le paramètre nommé nom + paramètre est défini. Le second format inverse le test, et + dans ce cas, les directives ne s'appliqueront que si nom + paramètre n'est pas défini.

+ +

L'argument nom paramètre est une définition qui peut + être effectuée par la ligne de commande + httpd via le paramètre + -Dparamètre au démarrage du serveur, ou via la + directive Define.

+ +

Les sections IfDefine + peuvent être imbriquées, ce qui permet d'implémenter un test + multi-paramètres simple. Exemple :

+ + + httpd -DReverseProxy -DUseCache -DMemCache ...
+
+ # httpd.conf
+ <IfDefine ReverseProxy>
+ + LoadModule proxy_module modules/mod_proxy.so
+ LoadModule proxy_http_module modules/mod_proxy_http.so
+ <IfDefine UseCache>
+ + LoadModule cache_module modules/mod_cache.so
+ <IfDefine MemCache>
+ + LoadModule mem_cache_module modules/mod_mem_cache.so
+
+ </IfDefine>
+ <IfDefine !MemCache>
+ + LoadModule disk_cache_module modules/mod_disk_cache.so
+
+ </IfDefine> +
+ </IfDefine> +
+ </IfDefine> +
+
+
+ + +IfModule +Contient des directives qui ne s'appliquent qu'en fonction +de la présence ou de l'absence d'un module spécifique +<IfModule [!]fichier module|identificateur +module> ... </IfModule> +server configvirtual +host +directory.htaccess + +All +Les identificateurs de modules sont disponibles dans les +versions 2.1 et supérieures. + + +

La section <IfModule + test>...</IfModule> permet de conférer à + des directives un caractère conditionnel basé sur la présence d'un + module spécifique. Les directives situées dans une section + IfModule ne s'appliquent que + si test est vrai. Si test est faux, tout ce + qui se trouve entre les balises de début et de fin est ignoré.

+ +

test peut se présenter sous deux formes :

+ +
    +
  • module
  • + +
  • !module
  • +
+ +

Dans le premier cas, les directives situées entre les balises de + début et de fin ne s'appliquent que si le module module + est présent -- soit compilé avec le binaire httpd, soit chargé + dynamiquement via la directive LoadModule. Le second format inverse le test, et dans + ce cas, les directives ne s'appliquent que si module + n'est pas présent.

+ +

L'argument module peut contenir soit l'identificateur + du module, soit le nom du fichier source du module. Par exemple, + rewrite_module est un identificateur et + mod_rewrite.c le nom du fichier source + correspondant. Si un module comporte plusieurs fichiers sources, + utilisez le nom du fichier qui contient la chaîne de caractères + STANDARD20_MODULE_STUFF.

+ +

Les sections IfModule + peuvent être imbriquées, ce qui permet d'implémenter des tests + multi-modules simples.

+ + Cette section ne doit être utilisée que si votre fichier de + configuration ne fonctionne qu'en fonction de la présence ou de + l'absence d'un module spécifique. D'une manière générale, il n'est + pas nécessaire de placer les directives à l'intérieur de sections + IfModule. +
+
+ + +Include +Inclut d'autres fichiers de configuration dans un des +fichiers de configuration du serveur +Include chemin fichier|chemin +répertoire +server configvirtual +host +directory + +Utilisation des caractères génériques depuis la version +2.0.41 + + +

Cette directive permet l'inclusion d'autres fichiers de + configuration dans un des fichiers de configuration du serveur.

+ +

On peut utiliser des caractères génériques de style Shell + (fnmatch()) pour inclure plusieurs fichiers en une + seule fois, selon leur ordre alphabétique. De plus, si la directive + Include pointe vers un répertoire, Apache + inclura tous les fichiers de ce répertoire et de tous ces + sous-répertoires. L'inclusion de répertoires entiers est cependant + déconseillée, car il est fréquent d'oublier des fichiers + temporaires dans un répertoire, ce qui causerait une erreur + httpd en cas d'inclusion. Pour inclure des + fichiers qui correspondent à un certain modèle, comme *.conf par + exemple, nous vous recommandons d'utiliser plutôt la syntaxe avec + caractères génériques comme ci-dessous.

+ +

Le chemin fichier spécifié peut être soit un chemin absolu, soit + un chemin relatif au répertoire défini par la directive ServerRoot.

+ +

Exemples :

+ + + Include /usr/local/apache2/conf/ssl.conf
+ Include /usr/local/apache2/conf/vhosts/*.conf +
+ +

ou encore, avec des chemins relatifs au répertoire défini par la + directive ServerRoot :

+ + + Include conf/ssl.conf
+ Include conf/vhosts/*.conf +
+
+ +apachectl +
+ + +KeepAlive +Active les connexions HTTP persistantes +KeepAlive On|Off +KeepAlive On +server configvirtual +host + + + +

L'extension Keep-Alive de HTTP/1.0 et l'implémentation des + connexions persistantes dans HTTP/1.1 ont rendu possibles des + sessions HTTP de longue durée, ce qui permet de transmettre + plusieurs requêtes via la même connexion TCP. Dans certains cas, le + gain en rapidité pour des documents comportant de nombreuses images + peut atteindre 50%. Pour activer les connexions persistantes, + définissez KeepAlive On.

+ +

Pour les clients HTTP/1.0, les connexions persistantes ne seront + mises en oeuvre que si elles ont été spécialement demandées par un + client. De plus, une connexion persistante avec un client HTTP/1.0 + ne peut être utilisée que si la taille du contenu est connue + d'avance. Ceci implique que les contenus dynamiques comme les + sorties CGI, les pages SSI, et les listings de répertoires générés + par le serveur n'utiliseront en général pas les connexions + persistantes avec les clients HTTP/1.0. Avec les clients HTTP/1.1, + les connexions persistantes sont utilisées par défaut, sauf + instructions contraires. Si le client le demande, le transfert par + tronçons de taille fixe (chunked encoding) sera utilisé afin de + transmettre un contenu de longueur inconnue via une connexion + persistante.

+ +

Lorsqu'un client utilise une connexion persistante, elle comptera + pour une seule requête pour la directive MaxRequestsPerChild, quel + que soit le nombre de requêtes transmises via cette connexion.

+
+ +MaxKeepAliveRequests +
+ + +KeepAliveTimeout +Durée pendant laquelle le serveur va attendre une requête +avant de fermer une connexion persistante +KeepAliveTimeout nombre[ms] +KeepAliveTimeout 5 +server configvirtual +host + +La spécification d'une valeur en millisecondes est +possible depuis les versions 2.3.2 et supérieures d'Apache + + +

Le nombre de secondes pendant lesquelles Apache va attendre une + requête avant de fermer la connexion. Le délai peut être défini en + millisecondes en suffixant sa valeur par ms. La valeur du délai + spécifiée par la directive Timeout s'applique dès qu'une requête a + été reçue.

+ +

Donner une valeur trop élévée à + KeepAliveTimeout peut induire des problèmes + de performances sur les serveurs fortement chargés. Plus le délai + est élévé, plus nombreux seront les processus serveur en attente de + requêtes de la part de clients inactifs.

+ +

Dans un contexte de serveur virtuel à base de nom, c'est le délai + du premier serveur virtuel défini (le serveur par défaut) parmi un + ensemble de directives NameVirtualHost qui sera utilisé. Les + autres valeurs seront ignorées.

+
+
+ + +Limit +Limite les contrôles d'accès que la section contient à +certaines méthodes HTTP +<Limit méthode [méthode] ... > ... + </Limit> +directory.htaccess + +AuthConfig, Limit + + +

Les contrôles d'accès s'appliquent normalement à + toutes les méthodes d'accès, et c'est en général le + comportement souhaité. Dans le cas général, les directives + de contrôle d'accès n'ont pas à être placées dans une section + Limit.

+ +

La directive Limit a pour + but de limiter les effets des contrôles d'accès aux méthodes HTTP + spécifiées. Pour toutes les autres méthodes, les restrictions + d'accès contenues dans la section Limit n'auront aucun + effet. L'exemple suivant n'applique les contrôles d'accès + qu'aux méthodes POST, PUT, et + DELETE, en laissant les autres méthodes sans protection + :

+ + + <Limit POST PUT DELETE>
+ + Require valid-user
+
+ </Limit> +
+ +

La liste des noms de méthodes peut contenir une ou plusieurs + valeurs parmi les suivantes : GET, POST, + PUT, DELETE, CONNECT, + OPTIONS, PATCH, PROPFIND, + PROPPATCH, MKCOL, COPY, + MOVE, LOCK, et UNLOCK. + Le nom de méthode est sensible à la casse. Si la + valeur GET est présente, les requêtes HEAD + seront aussi concernées. La méthode TRACE ne peut pas + être limitée (voir la directive TraceEnable).

+ + Une section LimitExcept doit toujours être préférée à + une section Limit pour la restriction d'accès, car une + section LimitExcept fournit une protection contre + les méthodes arbitraires. + +

Les directives Limit et + LimitExcept + peuvent être imbriquées. Dans ce cas, pour chaque niveau des + directives Limit ou LimitExcept, ces dernières + doivent restreindre l'accès pour les méthodes auxquelles les + contrôles d'accès s'appliquent.

+ + Lorsqu'on utilise les directives Limit ou LimitExcept avec la directive Require, la première directive + Require dont la + condition est satisfaite autorise la requête, sans tenir compte de + la présence d'autres directives Require. + +

Par exemple, avec la configuration suivante, tous les + utilisateurs seront autorisés à effectuer des requêtes + POST, et la directive Require group + editors sera ignorée dans tous les cas :

+ + + <LimitExcept GET> + + Require valid-user + + </LimitExcept>
+ <Limit POST> + + Require group editors + + </Limit> +
+
+
+ + +LimitExcept +Applique les contrôles d'accès à toutes les méthodes HTTP, +sauf celles qui sont spécifiées +<LimitExcept méthode [méthode] ... > ... + </LimitExcept> +directory.htaccess + +AuthConfig, Limit + + +

LimitExcept et + </LimitExcept> permettent de regrouper des + directives de contrôle d'accès qui s'appliqueront à toutes les + méthodes d'accès HTTP qui ne font pas partie de la + liste des arguments ; en d'autres termes, elles ont un comportement + opposé à celui de la section Limit, et on peut les utiliser pour + contrôler aussi bien les méthodes standards que les méthodes non + standards ou non reconnues. Voir la documentation de la section + Limit pour plus + de détails.

+ +

Par exemple :

+ + + <LimitExcept POST GET>
+ + Require valid-user
+
+ </LimitExcept> +
+ +
+
+ + +LimitInternalRecursion +Détermine le nombre maximal de redirections internes et de +sous-requêtes imbriquées +LimitInternalRecursion nombre [nombre] +LimitInternalRecursion 10 +server configvirtual +host + +Disponible à partir de la version 2.0.47 d'Apache + + +

Une redirection interne survient, par exemple, quand on utilise + la directive Action qui + redirige en interne la requête d'origine vers un script CGI. Une + sous-requête est le mécanisme qu'utilise Apache pour déterminer ce + qui se passerait pour un URI s'il faisait l'objet d'une requête. Par + exemple, mod_dir utilise les sous-requêtes pour + rechercher les fichiers listés dans la directive DirectoryIndex.

+ +

La directive LimitInternalRecursion permet + d'éviter un crash du serveur dû à un bouclage infini de redirections + internes ou de sous-requêtes. De tels bouclages sont dus en général + à des erreurs de configuration.

+ +

La directive accepte, comme arguments, deux limites qui sont + évaluées à chaque requête. Le premier nombre est le + nombre maximum de redirections internes qui peuvent se succéder. Le + second nombre détermine la profondeur d'imbrication + maximum des sous-requêtes. Si vous ne spécifiez qu'un seul + nombre, il sera affecté aux deux limites.

+ + Exemple + LimitInternalRecursion 5 + +
+
+ + +LimitRequestBody +limite la taille maximale du corps de la requête HTTP +envoyée par le client +LimitRequestBody octets +LimitRequestBody 0 +server configvirtual +host +directory.htaccess + +All + + +

Cette directive spécifie la taille maximale autorisée pour le + corps d'une requête ; la valeur de l'argument octets va + de 0 (pour une taille illimitée), à 2147483647 (2Go).

+ +

La directive LimitRequestBody permet de + définir une limite pour la taille maximale autorisée du corps d'une + requête HTTP en tenant compte du contexte dans lequel la directive + a été placée (c'est à dire au niveau du serveur, d'un répertoire, + d'un fichier ou d'une localisation). Si la requête du client dépasse + cette limite, le serveur répondra par un message d'erreur et ne + traitera pas la requête. La taille du corps d'une requête normale va + varier de manière importante en fonction de la nature de la + ressource et des méthodes autorisées pour cette dernière. Les + scripts CGI utilisent souvent le corps du message pour extraire les + informations d'un formulaire. Les implémentations de la méthode + PUT nécessitent une valeur au moins aussi élevée que la + taille maximale des représentations que le serveur désire accepter + pour cette ressource.

+ +

L'administrateur du serveur peut utiliser cette directive pour + contrôler plus efficacement les comportements anormaux des requêtes + des clients, ce qui lui permettra de prévenir certaines formes + d'attaques par déni de service.

+ +

Si par exemple, vous autorisez le chargement de fichiers vers une + localisation particulière, et souhaitez limiter la taille des + fichiers chargés à 100Ko, vous pouvez utiliser la directive suivante + :

+ + + LimitRequestBody 102400 + + +
+
+ + +LimitRequestFields +Limite le nombre de champs d'en-tête autorisés dans une +requête HTTP +LimitRequestFields nombre +LimitRequestFields 100 +server config + + +

nombre est un entier de 0 (nombre de champs illimité) + à 32767. La valeur par défaut est définie à la compilation par la + constante DEFAULT_LIMIT_REQUEST_FIELDS (100 selon la + distribution).

+ +

La directive LimitRequestFields permet à + l'administrateur du serveur de modifier le nombre maximum de champs + d'en-tête autorisés dans une requête HTTP. Pour un serveur, cette + valeur doit être supérieure au nombre de champs qu'une requête + client normale peut contenir. Le nombre de champs d'en-tête d'une + requête qu'un client utilise dépasse rarement 20, mais ce nombre + peut varier selon les implémentations des clients, et souvent en + fonction des extensions que les utilisateurs configurent dans leurs + navigateurs pour supporter la négociation de contenu détaillée. Les + extensions HTTP optionnelles utilisent souvent les + champs d'en-tête des requêtes.

+ +

L'administrateur du serveur peut utiliser cette directive pour + contrôler plus efficacement les comportements anormaux des requêtes + des clients, ce qui lui permettra de prévenir certaines formes + d'attaques par déni de service. La valeur spécifiée doit être + augmentée si les clients standards reçoivent une erreur du serveur + indiquant que la requête comportait un nombre d'en-têtes trop + important.

+ +

Par exemple :

+ + + LimitRequestFields 50 + + +
+
+ + +LimitRequestFieldSize +Dédinit la taille maximale autorisée d'un en-tête de +requête HTTP +LimitRequestFieldSize octets +LimitRequestFieldSize 8190 +server config + + +

Cette directive permet de définir le nombre maximum + d'octets autorisés dans un en-tête de requête HTTP.

+ +

La directive LimitRequestFieldSize permet + à l'administrateur du serveur de réduire ou augmenter la taille + maximale autorisée d'un en-tête de requête HTTP. Pour un serveur, + cette valeur doit être suffisamment grande pour contenir tout + en-tête d'une requête client normale. La taille d'un champ d'en-tête + de requête normal va varier selon les implémentations des clients, + et en fonction des extensions que les utilisateurs + configurent dans leurs navigateurs pour supporter la négociation de + contenu détaillée. Les en-têtes d'authentification SPNEGO peuvent + atteindre une taille de 12392 octets.

+ +

>L'administrateur du serveur peut utiliser cette directive pour + contrôler plus efficacement les comportements anormaux des requêtes + des clients, ce qui lui permettra de prévenir certaines formes + d'attaques par déni de service.

+ +

Par exemple ::

+ + + LimitRequestFieldSize 4094 + + + Dans des conditions normales, la valeur par défaut de cette + directive ne doit pas être modifiée. + +
+
+ + +LimitRequestLine +Définit la taille maximale d'une ligne de requête +HTTP +LimitRequestLine octets +LimitRequestLine 8190 +server config + + +

Cette directive permet de définir la taille maximale autorisée + pour une ligne de requête HTTP en octets.

+ +

La directive LimitRequestLine permet à + l'administrateur du serveur de réduire ou augmenter la taille + maximale autorisée d'une ligne de requête HTTP client. Comme une + requête comporte une méthode HTTP, un URI, et une version de + protocole, la directive LimitRequestLine + impose une restriction sur la longueur maximale autorisée pour un + URI dans une requête au niveau du serveur. Pour un serveur, cette + valeur doit être suffisamment grande pour référencer les noms de + toutes ses ressources, y compris toutes informations pouvant être + ajoutées dans la partie requête d'une méthode GET.

+ +

L'administrateur du serveur peut utiliser cette directive pour + contrôler plus efficacement les comportements anormaux des requêtes + des clients, ce qui lui permettra de prévenir certaines formes + d'attaques par déni de service.

+ +

Par exemple :

+ + + LimitRequestLine 4094 + + + Dans des conditions normales, la valeur par défaut de cette + directive ne doit pas être modifiée. +
+
+ + +LimitXMLRequestBody +Définit la taille maximale du corps d'une requête au format +XML +LimitXMLRequestBody octets +LimitXMLRequestBody 1000000 +server configvirtual +host +directory.htaccess +All + + +

Taille maximale (en octets) du corps d'une requête au format XML. + Une valeur de 0 signifie qu'aucune limite n'est + imposée.

+ +

Exemple :

+ + + LimitXMLRequestBody 0 + + +
+
+ + +Location +N'applique les directives contenues qu'aux URLs +spécifiées +<Location + chemin URL|URL> ... </Location> +server configvirtual +host + + + +

La directive Location + limite la portée des directives contenues aux URLs définies par + l'argument URL. Elle est similaire à la directive Directory, et marque le + début d'une section qui se termine par une directive + </Location>. Les sections Location sont traitées selon l'ordre dans + lequel elles apparaissent dans le fichier de configuration, mais + après les sections Directory et la lecture des + fichiers .htaccess, et après les sections Files.

+ +

Les sections Location + agissent complètement en dehors du système de fichiers. Ceci a de + nombreuses conséquences. Parmi les plus importantes, on ne doit pas + utiliser les sections Location + pour contrôler l'accès aux répertoires du système de fichiers. Comme + plusieurs URLs peuvent correspondre au même répertoire du système de + fichiers, un tel contrôle d'accès pourrait être contourné.

+ + Quand utiliser la section <directive + type="section">Location</directive> + +

Vous pouvez utiliser une section Location pour appliquer des directives à + des contenus situés en dehors du système de fichiers. Pour les + contenus situés à l'intérieur du système de fichiers, utilisez + plutôt les sections Directory et Files. <Location + /> constitue une exception et permet d'appliquer aisément + une configuration à l'ensemble du serveur.

+
+ +

Pour toutes les requêtes originales (non mandatées), l'argument + URL est un chemin d'URL de la forme + /chemin/. Aucun protocole, nom d'hôte, port, ou chaîne + de requête ne doivent apparaître. Pour les requêtes mandatées, l'URL + spécifiée doit être de la forme + protocole://nom_serveur/chemin, et vous devez inclure + le préfixe.

+ +

L'URL peut contenir des caractères génériques. Dans une chaîne + avec caractères génériques, ? correspond à un caractère + quelconque, et * à toute chaîne de caractères. Les + caractères génériques ne peuvent pas remplacer un / dans le chemin + URL.

+ +

On peut aussi utiliser les Expressions + rationnelles, moyennant l'addition d'un caractère + ~. Par exemple :

+ + + <Location ~ "/(extra|special)/data"> + + +

concernerait les URLs contenant les sous-chaîne + /extra/data ou /special/data. La directive + LocationMatch + présente un comportement identique à la version avec expressions + rationnelles de la directive Location, et son utilisation est + préférable à l'utilisation de cette dernière pour la simple raison + qu'il est difficile de distinguer ~ de - + dans la plupart des fontes.

+ +

La directive Location + s'utilise principalement avec la directive SetHandler. Par exemple, pour activer les + requêtes d'état, mais ne les autoriser que depuis des navigateurs + appartenant au domaine example.com, vous pouvez + utiliser :

+ + + <Location /status>
+ + SetHandler server-status
+ Order Deny,Allow
+ Deny from all
+ Allow from .example.com
+
+ </Location> +
+ + Note à propos du slash (/) +

La signification du caractère slash dépend de l'endroit où il + se trouve dans l'URL. Les utilisateurs peuvent être habitués à + son comportement dans le système de fichiers où plusieurs slashes + successifs sont souvent réduits à un slash unique (en d'autres + termes, /home///foo est identique à + /home/foo). Dans l'espace de nommage des URLs, ce + n'est cependant pas toujours le cas. Pour la directive LocationMatch et la + version avec expressions rationnelles de la directive Location, vous devez spécifier + explicitement les slashes multiples si telle est votre + intention.

+ +

Par exemple, <LocationMatch ^/abc> va + correspondre à l'URL /abc mais pas à l'URL + //abc. La directive Location sans expression rationnelle se comporte de + la même manière lorsqu'elle est utilisée pour des requêtes + mandatées. Par contre, lorsque la directive Location sans expression rationnelle + est utilisée pour des requêtes non mandatées, elle fera + correspondre implicitement les slashes multiples à des slashes + uniques. Par exemple, si vous spécifiez <Location + /abc/def>, une requête de la forme + /abc//def correspondra.

+
+
+Comment fonctionnent les sections +<Directory>, <Location> et <Files> pour une +explication de la manière dont ces différentes sections se combinent +entre elles à la réception d'une requête. +
+ + +LocationMatch +N'applique les directives contenues qu'aux URLs +correspondant à une expression rationnelle +<LocationMatch + regex> ... </LocationMatch> +server configvirtual +host + + + +

La directive LocationMatch + limite la portée des directives contenues à l'URL spécifiée, de + manière identique à la directive Location. Mais son argument permettant de + spécifier les URLs concernées est une expression rationnelle au lieu d'une simple + chaîne de caractères. Par exemple :

+ + + <LocationMatch "/(extra|special)/data"> + + +

correspondrait à toute URL contenant les sous-chaînes + /extra/data ou /special/data.

+
+Comment fonctionnent les sections +<Directory>, <Location> et <Files> pour une +explication de la manière dont ces différentes sections se combinent +entre elles à la réception d'une requête. +
+ + +LogLevel +Contrôle la verbosité du journal des erreurs +LogLevel niveau +LogLevel warn +server configvirtual +host + + + +

La directive LogLevel permet d'ajuster la + verbosité des messages enregistrés dans les journaux d'erreur (voir + la directive ErrorLog + directive). Les niveaux disponibles sont présentés + ci-après, par ordre de criticité décroissante :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Niveau Description Exemple
emerg Urgences - le système est inutilisable."Child cannot open lock file. Exiting"
alert Des mesures doivent être prises immédiatement."getpwuid: couldn't determine user name from uid"
crit Conditions critiques."socket: Failed to get a socket, exiting child"
error Erreurs."Premature end of script headers"
warn Avertissements."child process 1234 did not exit, sending another + SIGHUP"
notice Evènement important mais normal."httpd: caught SIGBUS, attempting to dump core in + ..."
info Informations."Server seems busy, (you may need to increase + StartServers, or Min/MaxSpareServers)..."
debug Messages de débogage."Opening config file ..."
+ +

Lorsqu'un niveau particulier est spécifié, les messages de tous + les autres niveaux de criticité supérieure seront aussi enregistrés. + Par exemple, si LogLevel info est spécifié, + les messages de niveaux notice et warn + seront aussi émis.

+ +

Il est recommandé d'utiliser un niveau crit ou + inférieur.

+ +

Par exemple :

+ + + LogLevel notice + + + Note +

Si la journalisation s'effectue directement dans un fichier, + les messages de niveau notice ne peuvent pas être + supprimés et sont donc toujours journalisés. Cependant, ceci ne + s'applique pas lorsque la journalisation s'effectue vers + syslog.

+
+
+
+ + +MaxKeepAliveRequests +Nombre de requêtes permises pour une connexion +persistante +MaxKeepAliveRequests nombre +MaxKeepAliveRequests 100 +server configvirtual +host + + + +

La directive MaxKeepAliveRequests permet + de limiter le nombre de requêtes autorisées par connexion lorsque + KeepAlive est à "on". Si sa + valeur est 0, le nombre de requêtes autorisées est + illimité. Il est recommandé de définir une valeur assez haute pour + des performances du serveur maximales.

+ +

Par exemple :

+ + + MaxKeepAliveRequests 500 + +
+
+ + +NameVirtualHost +Définit une adresse IP pour les serveurs virtuels à base de +nom +NameVirtualHost adresse[:port] +server config + + + +

Une seule directive NameVirtualHost permet +d'identifier un ensemble de serveurs virtuels identiques que le serveur +va sélectionner en fonction du nom d'hôte spécifié par le +client. La directive NameVirtualHost est +obligatoire si vous souhaitez configurer des serveurs virtuels à base de nom.

+ +

Cette directive, ainsi que les directives VirtualHost correspondantes, doit comporter un +numéro de port si le serveur supporte les connexions HTTP et HTTPS.

+ +

Bien que adresse puisse contenir un nom d'hôte, il est +recommandé d'utiliser plutôt une adresse IP ou un nom d'hôte avec +caractères génériques. Une directive NameVirtualHost contenant des +caractères génériques ne peut correspondre qu'à des serveurs virtuels +qui contiennent aussi des caractères génériques dans leur argument.

+ +

Dans les cas où un pare-feu ou autre mandataire reçoit les requêtes +et les redirige sous une adresse IP différente vers le serveur, vous +devez spécifier l'adresse IP de l'interface physique de la machine qui +va servir les requêtes.

+ +

Dans l'exemple ci-dessous, les requêtes reçues sur l'interface +192.0.2.1 et le port 80 ne vont déclencher une sélection que parmi les +deux premiers serveurs virtuels. Les requêtes reçues sur le port 80 et +sur toute interface ne vont déclencher une sélection que parmi les +troisième et quatrième serveurs virtuels. D'une manière générale, +lorsque l'interface ne constitue pas un critère important de sélection, +la valeur "*:80" suffit pour les directives NameVirtualHost et +VirtualHost.

+ + + NameVirtualHost 192.0.2.1:80
+ NameVirtualHost *:80

+ + <VirtualHost 192.0.2.1:80>
+   ServerName namebased-a.example.com
+ </VirtualHost>
+
+ <VirtualHost 192.0.2.1:80>
+   Servername namebased-b.example.com
+ </VirtualHost>
+
+ <VirtualHost *:80>
+   ServerName namebased-c.example.com
+ </VirtualHost>
+
+ <VirtualHost *:80>
+   ServerName namebased-d.example.com
+ </VirtualHost>
+
+ +
+ +

Les adresses IPv6 doivent être entourées de crochets, comme dans + l'exemple suivant :

+ + + NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080 + + + + + Argument de la directive <directive + type="section">VirtualHost</directive> +

Notez que l'argument de la directive VirtualHost doit être identique à + l'argument de la directive NameVirtualHost.

+ + + NameVirtualHost 192.0.2.2:80
+ <VirtualHost 192.0.2.2:80>
+ # ...
+ </VirtualHost>
+
+
+
+ +Documentation sur les serveurs +virtuels + +
+ + +Options +Définit les fonctionnalités disponibles pour un répertoire +particulier +Options + [+|-]option [[+|-]option] ... +Options All +server configvirtual +host +directory.htaccess + +Options + + +

La directive Options permet de définir + les fonctionnalités de serveur disponibles pour un répertoire + particulier.

+ +

option peut être défini à None, auquel + cas aucune fonctionnalité spécifique n'est activée, ou comprendre + une ou plusieurs des options suivantes :

+ +
+
All
+ +
Toutes les options excepté MultiViews. il s'agit + de la configuration par défaut.
+ +
ExecCGI
+ +
L'exécution de scripts CGI à l'aide du module + mod_cgi est permise.
+ +
FollowSymLinks
+ +
+ + Le serveur va suivre les liens symboliques dans le répertoire + concerné. + +

Bien que le serveur suive les liens symboliques, il ne modifie + pas le nom de chemin concerné défini par la section + Directory.

+

Notez aussi que cette option est ignorée si + elle est définie dans une section Location.

+

Le fait d'omettre cette option ne doit pas être considéré comme + une mesure de sécurité efficace, car il existe toujours une + situation de compétition (race condition) entre l'instant où l'on + vérifie qu'un chemin n'est pas un lien symbolique, et l'instant où + l'on utilise effectivement ce chemin.

+
+ +
Includes
+ +
+ Les inclusions côté serveur (SSI) à l'aide du module + mod_include sont autorisées.
+ +
IncludesNOEXEC
+ +
+ + Les inclusions côté serveur (SSI) sont permises, mais #exec + cmd et #exec cgi sont désactivés. + L'utilisation de #include virtual pour les scripts + CGI est cependant toujours possible depuis des répertoires + définis par ScriptAlias.
+ +
Indexes
+ +
+ Si une URL requise correspond au répertoire concerné, et si aucun + DirectoryIndex (par + exemple index.html) n'est défini pour ce + répertoire, le module mod_autoindex va renvoyer + un listing formaté du répertoire.
+ +
MultiViews
+ +
+ Les vues multiples ("multiviews") à contenu négocié à l'aide du + module mod_negotiation sont autorisées.
+ +
SymLinksIfOwnerMatch
+ +
Le serveur ne suivra que les liens symboliques qui renvoient + vers un fichier ou un répertoire dont le propriétaire est le même + que celui du lien. + + Note

Cette option est ignorée si elle est + définie dans une section Location.

+

Le fait d'omettre cette option ne doit pas être considéré comme + une mesure de sécurité efficace, car il existe toujours une + situation de compétition (race condition) entre l'instant où l'on + vérifie qu'un chemin n'est pas un lien symbolique, et l'instant où + l'on utilise effectivement ce chemin.

+
+
+ +

Normalement, si plusieurs directives + Options peuvent s'appliquer à un répertoire, + c'est la plus spécifique qui est utilisée et les autres sont + ignorées ; les options ne sont pas fusionnées (voir comment les sections sont + fusionnées). Elles le sont cependant si toutes les + options de la directive Options sont + précédées d'un symbole + ou -. Toute + option précédée d'un + est ajoutée à la liste des + options courantes de manière forcée et toute option précédée d'un + - est supprimée de la liste des options courantes de la + même manière.

+ + Avertissement +

Mélanger des Options avec + + ou - avec des Options sans + + ou - constitue une erreur de syntaxe, et + peut résulter en des comportements inattendus.

+
+ +

Par exemple, sans aucun symbole + et - + :

+ + + <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options Includes
+
+ </Directory> +
+ +

ici, seule l'option Includes sera prise en compte + pour le répertoire /web/docs/spec. Par contre, si la + seconde directive Options utilise les + symboles + et - :

+ + + <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options +Includes -Indexes
+
+ </Directory> +
+ +

alors, les options FollowSymLinks et + Includes seront prises en compte pour le répertoire + /web/docs/spec.

+ + Note +

L'utilisation de -IncludesNOEXEC ou + -Includes désactive complètement les inclusions côté + serveur sans tenir compte des définitions précédentes.

+
+ +

En l'absence de toute définition d'options, la valeur par défaut + est All.

+
+
+ + +RLimitCPU +Limite le temps CPU alloué aux processus initiés par les +processus enfants d'Apache +RLimitCPU secondes|max [secondes|max] +Non défini ; utilise les valeurs par défaut du système +d'exploitation +server configvirtual +host +directory.htaccess +All + + +

Prend 1 ou 2 paramètres. Le premier definit la limite de + consommation de ressources pour tous les processus, et le second la + consommation de ressources maximale. Les deux paramètres peuvent + contenir soit un nombre, soit max pour indiquer au + serveur que la limite de consommation correspond à la valeur + maximale autorisée par la configuration du système d'exploitation. + Pour augmenter la consommation maximale de ressources, le serveur + doit s'exécuter en tant que root, ou se trouver dans sa + phase de démarrage.

+ +

Cette directive s'applique aux processus initiés par les + processus enfants d'Apache qui traitent les requêtes, et non aux + processus enfants eux-mêmes. Sont concernés les scripts CGI et les + commandes exec des SSI, mais en aucun cas les processus initiés par + le processus parent d'Apache comme les journalisations redirigées + vers un programme.

+ +

Les limites de ressources CPU sont exprimées en secondes par + processus.

+
+RLimitMEM +RLimitNPROC +
+ + +RLimitMEM +Limite la mémoire allouée aux processus initiés par les +processus enfants d'Apache +RLimitMEM octets|max [octets|max] +Non défini ; utilise les valeurs par défaut du système +d'exploitation +server configvirtual +host +directory.htaccess +All + + +

Prend 1 ou 2 paramètres. Le premier definit la limite de + consommation de ressources pour tous les processus, et le second la + consommation de ressources maximale. Les deux paramètres peuvent + contenir soit un nombre, soit max pour indiquer au + serveur que la limite de consommation correspond à la valeur + maximale autorisée par la configuration du système d'exploitation. + Pour augmenter la consommation maximale de ressources, le serveur + doit s'exécuter en tant que root, ou se trouver dans sa + phase de démarrage.

+ +

Cette directive s'applique aux processus initiés par les + processus enfants d'Apache qui traitent les requêtes, et non aux + processus enfants eux-mêmes. Sont concernés les scripts CGI et les + commandes exec des SSI, mais en aucun cas les processus initiés par + le processus parent d'Apache comme les journalisations redirigées + vers un programme.

+ +

Les limites de ressources mémoire sont exprimées en octets par + processus.

+
+RLimitCPU +RLimitNPROC +
+ + +RLimitNPROC +Limite le nombre de processus qui peuvent être initiés par +les processus initiés par les processus enfants d'Apache +RLimitNPROC nombre|max [nombre|max] +Unset; uses operating system defaults +server configvirtual +host +directory.htaccess +All + + +

Prend 1 ou 2 paramètres. Le premier definit la limite de + consommation de ressources pour tous les processus, et le second la + consommation de ressources maximale. Les deux paramètres peuvent + contenir soit un nombre, soit max pour indiquer au + serveur que la limite de consommation correspond à la valeur + maximale autorisée par la configuration du système d'exploitation. + Pour augmenter la consommation maximale de ressources, le serveur + doit s'exécuter en tant que root, ou se trouver dans sa + phase de démarrage.

+ +

Cette directive s'applique aux processus initiés par les + processus enfants d'Apache qui traitent les requêtes, et non aux + processus enfants eux-mêmes. Sont concernés les scripts CGI et les + commandes exec des SSI, mais en aucun cas les processus initiés par + le processus parent d'Apache comme les journalisations redirigées + vers un programme.

+ +

Les limites des processus contrôlent le nombre de processus par + utilisateur.

+ + Note +

Si les processus CGI s'exécutent sous le même + utilisateur que celui du serveur web, cette + directive va limiter le nombre de processus que le serveur + pourra lui-même créer. La présence de messages + cannot fork dans le journal des + erreurs indiquera que la limite est atteinte.

+
+
+RLimitMEM +RLimitCPU +
+ + +ScriptInterpreterSource +Permet de localiser l'interpréteur des scripts +CGI +ScriptInterpreterSource Registry|Registry-Strict|Script +ScriptInterpreterSource Script +server configvirtual +host +directory.htaccess +FileInfo +Win32 seulement ; +l'option Registry-Strict est disponible dans les versions +2.0 et supérieures d'Apache + + +

Cette directive permet de contrôler la méthode qu'utilise Apache + pour trouver l'interpréteur destiné à exécuter les scripts CGI. La + définition par défaut est Script : ceci indique à + Apache qu'il doit utiliser l'interpréteur précisé dans la ligne + shebang du script (la première ligne, commençant par + #!). Sur les systèmes Win32, cette ligne ressemble + souvent à ceci :

+ + + #!C:/Perl/bin/perl.exe + + +

ou simplement, dans le cas où perl est dans le + PATH :

+ + + #!perl + + +

Avec ScriptInterpreterSource Registry, Windows va + effectuer une recherche dans l'arborescence + HKEY_CLASSES_ROOT de la base de registre avec comme + mot-clé l'extension du fichier contenant le script (par exemple + .pl). C'est la commande définie par la sous-clé de + registre Shell\ExecCGI\Command ou, si elle n'existe + pas, la sous-clé Shell\Open\Command qui est utilisée + pour ouvrir le fichier du script. Si ces clés de registre ne sont + pas trouvées, Apache utilise la méthode de l'option + Script.

+ + Sécurité +

Soyez prudent si vous utilisez ScriptInterpreterSource + Registry avec des répertoires faisant l'objet d'un ScriptAlias, car Apache va essayer + d'exécuter tous les fichiers contenus dans + celui-ci. L'option Registry peut causer des appels de + programmes non voulus sur des fichiers non destinés à être exécutés. + Par exemple, la commande par défaut open sur les fichiers + .htm sur la plupart des systèmes Windows va lancer + Microsoft Internet Explorer ; ainsi, toute requête HTTP pour un + fichier .htm situé dans le répertoire des scripts + va lancer le navigateur en arrière-plan sur le serveur, ce qui a + toutes les chances de crasher votre système dans les minutes qui + suivent.

+
+ +

L'option Registry-Strict, apparue avec Apache 2.0, + agit de manière identique à Registry, mais n'utilise + que la sous-clé Shell\ExecCGI\Command. La présence de + la clé ExecCGI n'étant pas systématique, Elle doit être + définie manuellement dans le registre Windows et évite ainsi tout + appel de programme accidentel sur votre système.

+
+
+ + +ServerAdmin +L'adresse électronique que le serveur inclut dans les +messages d'erreur envoyés au client +ServerAdmin adresse électronique|URL +server configvirtual +host + + + +

La directive ServerAdmin permet de définir + l'adresse de contact que le serveur va inclure dans tout message + d'erreur qu'il envoie au client. Si le programme httpd + ne reconnait pas l'argument fourni comme une URL, il suppose que + c'est une adresse électronique, et lui ajoute le préfixe + mailto: dans les cibles des hyperliens. Il est + cependant recommandé d'utiliser exclusivement une adresse + électronique, car de nombreux scripts CGI considèrent ceci comme + implicite. Si vous utilisez une URL, elle doit pointer vers un autre + serveur que vous contrôlez. Dans le cas contraire, les utilisateurs + seraient dans l'impossibilité de vous contacter en cas de problème.

+ +

Il peut s'avérer utile de définir une adresse dédiée à + l'administration du serveur, par exemple :

+ + + ServerAdmin www-admin@foo.exemple.com + +

car les utilisateurs ne mentionnent pas systématiquement le + serveur dont ils parlent !

+
+
+ + +ServerAlias +Autres noms d'un serveur utilisables pour atteindre des +serveurs virtuels à base de nom +ServerAlias nom serveur [nom serveur] +... +virtual host + + +

La directive ServerAlias permet de définir + les noms alternatifs d'un serveur utilisables pour atteindre des serveurs virtuels à base de + nom. La directive ServerAlias peut + contenir des caractères génériques, si nécessaire.

+ + + <VirtualHost *:80>
+ ServerName serveur.domaine.com
+ ServerAlias serveur serveur2.domaine.com serveur2
+ ServerAlias *.exemple.com
+ # ...
+ </VirtualHost> +
+
+Documentation sur les serveurs virtuels +d'Apache +
+ + +ServerName +Nom d'hôte et port que le serveur utilise pour +s'authentifier lui-même +ServerName [protocole://]nom de domaine +entièrement qualifié[:port] +server configvirtual +host + +Dans la version 2.0, cette directive remplace la +fonctionnalité de la directive Port de la version +1.3. + + +

La directive ServerName permet de définir + les protocole, nom d'hôte et port d'une requête que le serveur + utilise pour s'authentifier lui-même. Ceci est utile lors de la + création de redirections d'URLs. Par exemple, si le nom de la + machine hébergeant le serveur web est + simple.exemple.com, la machine possède l'alias + DNS www.exemple.com, et si vous voulez que le serveur + web s'identifie avec cet alias, vous devez utilisez la définition + suivante :

+ + + ServerName www.exemple.com:80 + + +

Si la directive ServerName n'est pas + définie, le serveur tente de déterminer le nom d'hôte en effectuant + une recherche DNS inverse sur son adresse IP. Si la directive + ServerName ne précise pas de port, le serveur + utilisera celui de la requête entrante. Il est recommandé de + spécifier un nom d'hôte et un port spécifiques à l'aide de la + directive ServerName pour une fiabilité + optimale et à titre préventif.

+ +

Si vous définissez des serveurs virtuels à base de + nom, une directive ServerName située à + l'intérieur d'une section VirtualHost spécifiera quel nom d'hôte + doit apparaître dans l'en-tête de requête Host: pour + pouvoir atteindre ce serveur virtuel.

+ + +

Parfois, le serveur s'exécute en amont d'un dispositif qui + implémente SSL, comme un mandataire inverse, un répartiteur de + charge ou un boîtier dédié SSL. Dans ce cas, spécifiez le protocole + https:// et le port auquel les clients se connectent + dans la directive ServerName, afin de + s'assurer que le serveur génère correctement ses URLs + d'auto-identification. +

+ +

Voir la description des directives UseCanonicalName et UseCanonicalPhysicalPort pour les + définitions qui permettent de déterminer si les URLs + auto-identifiantes (par exemple via le module + mod_dir) vont faire référence au port spécifié, ou + au port indiqué dans la requête du client. +

+ +
+ +Problèmes concernant le DNS et +Apache +Documentation sur les serveurs virtuels +d'Apache +UseCanonicalName +UseCanonicalPhysicalPort +NameVirtualHost +ServerAlias +
+ + +ServerPath +Nom de chemin d'URL hérité pour un serveur virtuel à base +de nom accédé par un navigateur incompatible +ServerPath chemin d'URL +virtual host + + +

La directive ServerPath permet de définir + le nom de chemin d'URL hérité d'un hôte, à utiliser avec les serveurs virtuels à base de nom.

+
+Documentation sur les serveurs virtuels +d'Apache +
+ + +ServerRoot +Racine du répertoire d'installation du +serveur +ServerRoot chemin de répertoire +ServerRoot /usr/local/apache +server config + + +

La directive ServerRoot permet de définir + le répertoire dans lequel le serveur est installé. En particulier, + il contiendra les sous-répertoires conf/ et + logs/. Les chemins relatifs indiqués dans les autres + directives (comme Include ou LoadModule) seront définis par + rapport à ce répertoire.

+ + Example + ServerRoot /home/httpd + + +
+the -d + options de httpd +les conseils à +propos de sécurité pour des informations sur la manière de définir +correctement les permissions sur le répertoire indiqué par la directive +ServerRoot +
+ + +ServerSignature +Définit un pied de page pour les documents générés par le +serveur +ServerSignature On|Off|EMail +ServerSignature Off +server configvirtual +host +directory.htaccess + +All + + +

La directive ServerSignature permet de + définir une ligne de pied de page fixe pour les documents générés + par le serveur (messages d'erreur, listings de répertoires ftp de + mod_proxy, sorties de mod_info, + etc...). Dans le cas d'une chaîne de mandataires, l'utilisateur n'a + souvent aucun moyen de déterminer lequel des mandataires chaînés a + généré un message d'erreur, et c'est une des raisons pour lesquelles + on peut être amené à ajouter un tel pied de page.

+ +

La valeur par défaut Off supprime la ligne de pied + de page (et est ainsi compatible avec le comportement des + versions 1.2 et antérieures d'Apache). la valeur On + ajoute simplement une ligne contenant le numéro de version du + serveur ainsi que le nom du serveur virtuel issu de la directive + ServerName, alors que la valeur + EMail ajoute en plus une référence "mailto:" à + l'administrateur du document référencé issu la directive + ServerAdmin.

+ +

Après la version 2.0.44, les détails à propos du numéro de + version du serveur sont contrôlés à l'aide de la directive + ServerTokens.

+
+ServerTokens +
+ + +ServerTokens +Configure l'en-tête Server de la réponse +HTTP +ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full +ServerTokens Full +server config + + +

Cette directive permet de contrôler le contenu de l'en-tête + Server inclus dans la réponse envoyée au client : cet + en-tête peut contenir le type de système d'exploitation du serveur, + ainsi que des informations à propos des modules compilés avec le + serveur.

+ +
+
ServerTokens Prod[uctOnly]
+ +
Le serveur renvoie (par exemple): Server: + Apache
+ +
ServerTokens Major
+ +
Le serveur renvoie (par exemple): Server: + Apache/2
+ +
ServerTokens Minor
+ +
Le serveur renvoie (par exemple): Server: + Apache/2.0
+ +
ServerTokens Min[imal]
+ +
Le serveur renvoie (par exemple): Server: + Apache/2.0.41
+ +
ServerTokens OS
+ +
Le serveur renvoie (par exemple): Server: + Apache/2.0.41 (Unix)
+ +
ServerTokens Full (valeur par défaut)
+ +
Le serveur renvoie (par exemple): Server: + Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2
+
+ +

Cette définition s'applique à l'ensemble du serveur et ne peut + être activée ou désactivée pour tel ou tel serveur virtuel.

+ +

Dans les versions postérieures à 2.0.44, cette directive contrôle + aussi les informations fournies par la directive ServerSignature.

+
+ServerSignature +
+ + +SetHandler +Force le traitement des fichiers spécifiés par un +gestionnaire particulier +SetHandler nom gestionnaire|None +server configvirtual +host +directory.htaccess + +FileInfo +Intégré dans le noyau d'Apache depuis la version +2.0 + + +

Lorsqu'elle se situe à l'intérieur d'un fichier + .htaccess, ou d'une section Directory ou Location, cette directive force le + traitement de tous les fichiers spécifiés par le gestionnaire défini par l'argument + nom gestionnaire. Par exemple, dans le cas d'un + répertoire dont vous voulez interpréter le contenu comme des + fichiers de règles d'images cliquables, sans tenir compte des + extensions, vous pouvez ajouter la ligne suivante dans un fichier + .htaccess de ce répertoire :

+ + + SetHandler imap-file + + +

Autre exemple : si vous voulez que le serveur affiche un + compte-rendu d'état chaque fois qu'une URL du type http://nom + serveur/status est appelée, vous pouvez ajouter ceci dans + httpd.conf :

+ + + <Location /status>
+ + SetHandler server-status
+
+ </Location> +
+ +

Vous pouvez écraser la définition antérieure d'une directive + SetHandler en utilisant la valeur + None.

+

Note : comme SetHandler l'emporte sur la + définition des gestionnaires par défaut, le comportement habituel + consistant à traiter les URLs se terminant par un slash (/) comme + des répertoires ou des fichiers index est désactivé.

+
+ +AddHandler + +
+ + +SetInputFilter +Définit les filtres par lesquels vont passer les requêtes +client et les données POST +SetInputFilter filtre[;filtre...] +server configvirtual +host +directory.htaccess + +FileInfo + + +

La directive SetInputFilter permet de + définir le ou les filtres par lesquels vont passer les requêtes + client et les données POST au moment où le serveur les reçoit. Cette + définition vient en ajout à tout autre filtre défini en + quelqu'endroit que ce soit, y compris via la directive AddInputFilter.

+ +

Si la directive comporte plusieurs filtres, ils doivent être + séparés par des points-virgules, et spécifiés selon l'ordre dans + lequel vous souhaitez les voir agir sur les contenus.

+
+documentation des Filtres +
+ + +SetOutputFilter +Définit les filtres par lesquels vont passer les réponses +du serveur +SetOutputFilter filtre[;filtre...] +server configvirtual +host +directory.htaccess + +FileInfo + + +

La directive SetOutputFilter permet de + définir les filtres par lesquels vont passer les réponses du serveur + avant d'être envoyées au client. Cette définition vient en ajout à + tout autre filtre défini en quelqu'endroit que ce soit, y compris + via la directive AddOutputFilter.

+ +

Par exemple, la configuration suivante va traiter tous les + fichiers du répertoire /www/data/ comme des inclusions + côté serveur (SSI) :

+ + + <Directory /www/data/>
+ + SetOutputFilter INCLUDES
+
+ </Directory> +
+ +

Si la directive comporte plusieurs filtres, ils doivent être + séparés par des points-virgules, et spécifiés selon l'ordre dans + lequel vous souhaitez les voir agir sur les contenus.

+
+Filters documentation +
+ + +TimeOut +Temps pendant lequel le serveur va attendre certains +évènements avant de considérer qu'une requête a échoué +TimeOut secondes +TimeOut 300 +server configvirtual +host + + +

La directive TimeOut permet de définir le + temps maximum pendant lequel Apache va attendre des entrées/sorties + selon les circonstances :

+ +
    +
  1. Lors de la lecture de données en provenance du client, le + temps maximum jusqu'à l'arrivée d'un paquet TCP si le tampon est + vide.
  2. + +
  3. Lors de l'écriture de données destinées au client, le temps + maximum jusqu'à l'arrivée de l'accusé-réception d'un paquet si le + tampon d'envoi est plein.
  4. + +
  5. Avec mod_cgi, le temps d'attente maximum des + sorties d'un script CGI.
  6. + +
  7. Avec mod_ext_filter, le temps d'attente + maximum des sorties d'un processus de filtrage.
  8. + +
  9. Avec mod_proxy, la valeur du délai par défaut + si ProxyTimeout n'est + pas défini.
  10. +
+ +
+
+ + +TraceEnable +Détermine le comportement des requêtes +TRACE +TraceEnable [on|off|extended] +TraceEnable on +server config +Disponible dans les versions 1.3.34, 2.0.55 et +supérieures d'Apache + + +

Cette directive l'emporte sur le comportement de + TRACE pour le noyau du serveur et + mod_proxy. La définition par défaut + TraceEnable on permet des requêtes TRACE + selon la RFC 2616, qui interdit d'ajouter tout corps à la requête. + La définition TraceEnable off indique au noyau du + serveur et à mod_proxy de retourner un code + d'erreur 405 (Méthode non autorisée) au client.

+ +

En fait, et à des fins de test et de diagnostic seulement, on + peut autoriser l'ajout d'un corps de requête à l'aide de la + définition non standard TraceEnable extended. Le noyau + du serveur (dans le cas d'un serveur d'origine) va limiter la taille + du corps de requête à 64k (plus 8k pour les en-têtes de + fractionnement si Transfer-Encoding: chunked est + utilisé). Le noyau du serveur va reproduire l'ensemble des en-têtes, + y compris les en-têtes de fractionnement avec le corps de la + réponse. Dans le cas d'un serveur mandataire, la taille du corps de + requête n'est pas limitée à 64k.

+
+
+ + +UseCanonicalName +Définit la manière dont le serveur détermine son propre nom +et son port +UseCanonicalName On|Off|DNS +UseCanonicalName Off +server configvirtual +host +directory + + +

Dans de nombreuses situations, Apache doit construire une URL + auto-identifiante -- c'est à dire une URL qui fait + référence au serveur lui-même. Avec UseCanonicalName + On, Apache va utiliser le nom d'hôte et le port spécifiés par + la directive ServerName pour + construire le nom canonique du serveur. Ce nom est utilisé dans + toutes les URLs auto-identifiantes, et affecté aux variables + SERVER_NAME et SERVER_PORT dans les + programmes CGI.

+ +

Avec UseCanonicalName Off, Apache va construire ses + URLs auto-identifiantes à l'aide du nom d'hôte et du port fournis + par le client, si ce dernier en a fourni un (dans la négative, + Apache utilisera le nom canonique, de la même manière que + ci-dessus). Ces valeurs sont les mêmes que celles qui sont utilisées + pour implémenter les serveurs virtuels à base de + nom, et sont disponibles avec les mêmes clients. De même, les + variables CGI SERVER_NAME et SERVER_PORT + seront affectées des valeurs fournies par le client.

+ +

Cette directive peut s'avérer utile, par exemple, sur un serveur + intranet auquel les utilisateurs se connectent en utilisant des noms + courts tels que www. Si les utilisateurs tapent un nom + court suivi d'une URL qui fait référence à un répertoire, comme + http://www/splat, sans le slash terminal, vous + remarquerez qu'Apache va les rediriger vers + http://www.domain.com/splat/. Si vous avez activé + l'authentification, ceci va obliger l'utilisateur à s'authentifier + deux fois (une première fois pour www et une seconde + fois pour www.domain.com -- voir la + foire aux questions sur ce sujet pour plus d'informations). Par + contre, si UseCanonicalName est définie à + Off, Apache redirigera l'utilisateur vers + http://www/splat/.

+ +

Pour l'hébergement virtuel en masse à base d'adresse IP, on + utilise une troisième option, UseCanonicalName + DNS, pour supporter les clients anciens qui ne + fournissent pas d'en-tête Host:. Apache effectue alors + une recherche DNS inverse sur l'adresse IP du serveur auquel le + client s'est connecté afin de construire ses URLs + auto-identifiantes.

+ + Avertissement +

Les programmes CGI risquent d'être perturbés par cette option + s'ils tiennent compte de la variable SERVER_NAME. Le + client est pratiquement libre de fournir la valeur qu'il veut comme + nom d'hôte. Mais si le programme CGI n'utilise + SERVER_NAME que pour construire des URLs + auto-identifiantes, il ne devrait pas y avoir de problème.

+
+
+UseCanonicalPhysicalPort +ServerName +Listen +
+ + +UseCanonicalPhysicalPort +Définit la manière dont le serveur détermine son propre nom +et son port +UseCanonicalPhysicalPort On|Off +UseCanonicalPhysicalPort Off +server configvirtual +host +directory + + +

Dans de nombreuses situations, Apache doit construire une URL + auto-identifiante -- c'est à dire une URL qui fait + référence au serveur lui-même. Avec UseCanonicalPhysicalPort + On, Apache va fournir le numéro de port physique réel utilisé + par la requête en tant que port potentiel, pour construire le port + canonique afin que le serveur puisse alimenter la directive + UseCanonicalName. Avec + UseCanonicalPhysicalPort Off, Apache n'utilisera pas le + numéro de port physique réel, mais au contraire se référera aux + informations de configuration pour construire un numéro de port + valide.

+ + Note +

L'ordre dans lequel s'effectue la recherche du port est le + suivant :

+ UseCanonicalName On

+
    +
  • Port spécifié par Servername
  • +
  • Port physique
  • +
  • Port par défaut
  • +
+ UseCanonicalName Off | DNS +
    +
  • Port spécifié dans l'en-tête Host:
  • +
  • Port physique
  • +
  • Port spécifié par Servername
  • +
  • Port par défaut
  • +
+ +

Avec UseCanonicalPhysicalPort Off, on reprend + l'ordre ci-dessus en supprimant "Port physique".

+
+ +
+UseCanonicalName +ServerName +Listen +
+ + +VirtualHost +Contient des directives qui ne s'appliquent qu'à un nom +d'hôte spécifique ou à une adresse IP +<VirtualHost + adresse IP[:port] [adresse + IP[:port]] ...> ... + </VirtualHost> +server config + + +

Les balises VirtualHost et + </VirtualHost> permettent de rassembler un groupe + de directives qui ne s'appliquent qu'à un serveur virtuel + particulier. Toute directive autorisée dans un contexte de serveur + virtuel peut être utilisée. Lorsque le serveur reçoit un requête + pour un document hébergé par un serveur virtuel particulier, il + applique les directives de configuration rassemblées dans la section + VirtualHost. adresse + IP peut être :

+ +
    +
  • L'adresse IP du serveur virtuel ;
  • + +
  • Un nom de domaine entièrement qualifié correspondant à + l'adresse IP du serveur virtuel (non recommandé) ;
  • + +
  • Le caractère *, qui n'est utilisé qu'en + combinaison avec NameVirtualHost * pour intercepter + toutes les adresses IP ; ou
  • + +
  • La chaîne de caractères _default_, qui n'est + utilisée qu'avec l'hébergement virtuel à base d'adresse IP pour + intercepter les adresses IP qui ne correspondent à aucun serveur + virtuel.
  • +
+ + Exemple + <VirtualHost 10.1.2.3>
+ + ServerAdmin webmaster@host.exemple.com
+ DocumentRoot /www/docs/host.exemple.com
+ ServerName host.exemple.com
+ ErrorLog logs/host.exemple.com-error_log
+ TransferLog logs/host.exemple.com-access_log
+
+ </VirtualHost> +
+ + +

Les adresses IPv6 doivent être entourées de crochets car dans le + cas contraire, un éventuel port optionnel ne pourrait pas être + déterminé. Voici un exemple de serveur virtuel avec adresse IPv6 + :

+ + + <VirtualHost [2001:db8::a00:20ff:fea7:ccea]>
+ + ServerAdmin webmaster@host.exemple.com
+ DocumentRoot /www/docs/host.exemple.com
+ ServerName host.exemple.com
+ ErrorLog logs/host.exemple.com-error_log
+ TransferLog logs/host.exemple.com-access_log
+
+ </VirtualHost> +
+ +

Chaque serveur virtuel doit correspondre à une adresse IP, un + port ou un nom d'hôte spécifique ; dans le premier cas, le serveur + doit être configuré pour recevoir les paquets IP de plusieurs + adresses (si le serveur n'a qu'une interface réseau, on peut + utiliser à cet effet la commande ifconfig alias -- si + votre système d'exploitation le permet).

+ + Note +

L'utilisation de la directive VirtualHost n'affecte en rien les + adresses IP sur lesquelles Apache est en écoute. Vous devez vous + assurer que les adresses des serveurs virtuels sont bien incluses + dans la liste des adresses précisées par la directive Listen.

+
+ +

Avec l'hébergement virtuel à base d'adresse IP, on peut utiliser + le nom spécial _default_, auquel cas le serveur virtuel + considéré interceptera toute adresse IP qui n'est pas explicitement + associée à un autre serveur virtuel. En l'absence de serveur virtuel + associé à _default_, et si l'adresse IP demandée ne + correspond à aucun serveur virtuel, c'est la configuration du + serveur "principal" qui sera utilisée, c'est à dire l'ensemble des + définitions situées en dehors de toute section VirtualHost.

+ +

Vous pouvez spécifier :port pour modifier le port du + serveur virtuel. S'il n'est pas spécifié, sa valeur par défaut + correspond à celle qui est définie par la dernière directive + Listen du serveur + principal. Vous pouvez aussi spécifier :* pour accepter + tous les ports associés à l'adresse du serveur virtuel (c'est une + configuration recommandée lorsqu'on utilise + _default_).

+ +

Tout bloc VirtualHost doit comporter une directive + ServerName. Dans le cas + contraire, le serveur virtuel héritera de la valeur de la directive + ServerName issue de la + configuration du serveur principal.

+ + Sécurité +

Voir le document sur les conseils à propos de sécurité + pour une description détaillée des raisons pour lesquelles la + sécurité de votre serveur pourrait être compromise, si le répertoire + contenant les fichiers journaux est inscriptible par tout autre + utilisateur que celui qui démarre le serveur.

+
+
+Documentation des serveurs virtuels +d'Apache +Problèmes concernant DNS et +Apache +Définition des adresses et ports +qu'utilise Apache +Comment fonctionnent les sections +<Directory>, <Location> et <Files> pour une +explication de la manière dont ces différentes sections se combinent +entre elles à la réception d'une requête +
+ +