From: Vincent Deffontaines Date: Sat, 20 Nov 2010 13:56:44 +0000 (+0000) Subject: Adding french translation for mod_core X-Git-Tag: 2.2.18~292 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=00b7f19e599dc2cd45302dbf3035f3171ab8a745;p=thirdparty%2Fapache%2Fhttpd.git Adding french translation for mod_core git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@1037211 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/mod/core.html b/docs/manual/mod/core.html index faf3d61ba81..81c99a44623 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 00000000000..7683aa529b4 --- /dev/null +++ b/docs/manual/mod/core.html.fr @@ -0,0 +1,3835 @@ + + + +core - Serveur Apache HTTP + + + + + + +
<-
+
+Apache > Serveur HTTP > Documentation > Version 2.2 > Modules
+
+

Fonctionalités de Base Apache

+
+

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

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

AcceptFilter Directive

+ + + + + + + +
Description:Permet d'optimiser la configuration d'un socket pour +l'écoute d'un protocole
Syntaxe:AcceptFilter protocole filtre +d'acceptation
Contexte:configuration du serveur
Statut:Core
Module:core
Compatibilité:Disponible avec Apache version 2.1.5 et +supérieures
+

Cette directive permet d'effectuer une optimisation du 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 et le filtre plus + primitif TCP_DEFER_ACCEPT sous Linux sont actuellement + supportés.

+ +

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).

+ +

L'utilisation de la valeur none comme argument + désactive tout filtre d'acceptation pour ce protocole. Elle peut + être utile dans le cas d'un protocole pour lequel un serveur doit + d'abord envoyer des données, comme nntp :

+

AcceptFilter nntp none

+ + +

Voir aussi

+
    +
  • Protocol
  • +
+
+
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 avec 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 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 MIME +particulier
Syntaxe:AddOutputFilterByType filtre[;filtre...] +type MIME [type MIME] ...
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 depuis les versions 2.1
+

Cette directive active un filtre en sortie particulier pour une + requête en fonction du type MIME 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 MIME + n'a pas pu être déterminé et est dans ce cas défini par la + directive DefaultType, même + si la directive DefaultType a + la même valeur.

+ +

Cependant, 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 tel quel
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 +ulté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 tel quel 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 DefaultType, ErrorDocument, ForceType, LanguagePriority, + SetHandler, SetInputFilter, SetOutputFilter, et directives du + module mod_mime Add* et Remove*, + etc...), 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 "internal + server error".

+ +

Pour des raisons de sécurité et de performances, n'affectez + pas à AllowOverride une autre valeur que + None dans votre bloc <Directory />. + Configurez plutôt le bloc <Directory> qui + concerne le répertoire dans lequel vous voulez placer votre fichier + .htaccess (ou créez-le s'il n'existe pas).

+
+ + +

Voir aussi

+ +
+
top
+

AuthName Directive

+ + + + + + + +
Description:Identificateur d'autorisation à utiliser pour +l'authentification HTTP
Syntaxe:AuthName domaine d'authentification
Contexte:répertoire, .htaccess
Annuler:AuthConfig
Statut:Core
Module:core
+

Cette directive permet de définir l'identificateur d'autorisation + pour un répertoire. Cet identificateur est fourni au client afin que + ce dernier sache quels nom d'utilisateur et mot de passe envoyer. + AuthName n'accepte qu'un seul argument ; si + l'identificateur contient des espaces, il doit être entouré + d'apostrophes. Il doit être associé à des directives AuthType et Require, ainsi qu'à des directives telles + que AuthUserFile et + AuthGroupFile + pour pouvoir fonctionner.

+ +

Par exemple :

+ +

+ AuthName "Top Secret" +

+ +

La chaîne de caractères définie par la directive + AuthName correspond à celle que la plupart des + navigateurs vont fournir dans la boîte de dialogue de saisie du mot + de passe.

+ +

Voir aussi

+ +
+
top
+

AuthType Directive

+ + + + + + + +
Description:Le type d'authentification de l'utilisateur
Syntaxe:AuthType Basic|Digest
Contexte:répertoire, .htaccess
Annuler:AuthConfig
Statut:Core
Module:core
+

Cette directive permet de définir le type d'authentification de + l'utilisateur pour un répertoire. Les types d'authentification + disponibles sont Basic (implémenté par + mod_auth_basic), et Digest (implémenté + par mod_auth_digest).

+ +

Pour que l'authentification fonctionne, vous devez aussi définir + les directives AuthName et Require. + En outre, le serveur doit avoir à sa disposition un module + fournisseur d'authentification tel que + mod_authn_file et un module d'autorisation tel que + mod_authz_user.

+ +

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:Type de contenu MIME qui sera envoyé par défaut si le +serveur ne peut le déterminer d'aucune manière
Syntaxe:DefaultType type MIME|none
Défaut:DefaultType text/plain
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
+

Il peut arriver que le serveur doive servir un document dont il + ne peut pas déterminer le type à partir de sa table de types MIME.

+ +

Le serveur DEVRAIT fournir au client le type de contenu du + document. Si le serveur n'est pas capable de le déterminer par la + voie normale, il fournira le type défini par la directive + DefaultType. Par exemple :

+ +

+ DefaultType image/gif +

+ +

conviendra pour un répertoire contenant de nombreuses images GIF + dont le fichier ne comporte pas l'extension .gif.

+ +

Dans les cas où ni le serveur, ni l'administrateur (ou un + serveur mandataire) ne sont en mesure de déterminer le type du + document, il est préférable de ne pas le mentionner, plutôt que de + fournir de fausses informations. À cet effet, on utilise

+

+ DefaultType None +

+

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

+ +

Notez qu'à la différence de la directive ForceType, cette directive ne définit que + le type MIME par défaut. Toute autre définition de type MIME, y + compris l'extension des noms de fichiers, susceptible de + permettre d'identifier le type de média l'emportera sur la valeur + par défaut.

+ +
+
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 expressions rationnelles + 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 la 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.

+ +

Caractère de fin de ligne

+

Cette directive ne tient pas compte du caractère de fin de + ligne ($).

+
+ + +

Voir aussi

+ +
+
top
+

DocumentRoot Directive

+ + + + + + + +
Description:Racine de l'arborescence des documents principale 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 + terminal.

+ +

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) s'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. Cependant, sur certains systèmes, 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.
  • +
  • La suppression ou la troncature d'un fichier faisant l'objet + d'une image en mémoire peut provoquer un crash de + httpd avec une erreur de segmentation. +
  • +
+ +

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> +

+

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
+

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 plateforme Itanium, sendfile peut s'avérer + r.{1,2}pertoireincapable 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> +

+ +
+
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 ces 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.

+ +

Si vous utilisez mod_proxy, il est en général préférable + d'activer ProxyErrorOverride afin d'être en + mesure de produire des messages d'erreur personnalisés pour le + compte de votre serveur d'origine. Si vous n'activez pas + ProxyErrorOverride, Apache ne générera pas de messages d'erreur + personnalisés pour le contenu mandaté.

+ +

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 +et OS/2)
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ére 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" +

+ +

Voir les notes à propos des journaux + redirigés pour plus de détails.

+ +

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 pour les fichiers statiques
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 statique (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 dézsormais de choisir + quelles caractéristiques du fichier vont être éventuellement + utilisées. 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. +
+

Inclusions côté serveur

+ Aucun champ ETag n'est généré pour les réponses interprétées par + mod_include, car l'entité de la réponse peut + changer sans modification de l'INode, du MTime, ou de la taille du + fichier statique contenant les directives SSI. +
+ + +
+
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 un type de contenu MIME pour les fichiers +spécifiés
Syntaxe:ForceType type MIME|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 MIME. 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 qu'à la différence de DefaultType, cette directive l'emporte sur + toute méthode d'attribution du type MIME, y compris les extensions + de nom de fichier, qui parviendrait à identifier le type de + médium.

+ +

Vous pouvez annuler toute autre définition + ForceType en affectant la valeur + None à l'argument type MIME :

+ +

+ # 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
+

GprofDir Directive

+ + + + + + +
Description:Répertoire dans lequel écrire les données de profiling +gmon.out.
Syntaxe:GprofDir /tmp/gprof/|/tmp/gprof/%
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
+

Lorsque le serveur a été compilé avec le support du profiling + gprof, la directive GprofDir permet de + spécifier dans quel répertoire les fichiers gmon.out + doivent être écrits lorsque le processus s'arrête. Si l'argument se + termine par un caractère pourcentage ('%'), des sous-répertoires + sont créés pour chaque identifiant de processus.

+ +

Cette directive ne fonctionne actuellement qu'avec le MPM + prefork.

+ +
+
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 noms 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
+

<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.

+ +

La définition de l'argument nom paramètre + s'effectue au niveau de la ligne de commande + httpd via le paramètre + -Dparamètre au démarrage du serveur.

+ +

Les sections <IfDefine> + peuvent être imbriquées, ce qui permet de mettre en oeuvre 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, utilisation des caractères génériques pour les répertoires +depuis la version 2.3.6
+

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()) dans le nom du fichier ou la partie + répertoire 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. Nous vous recommandons + plutôt d'utiliser la syntaxe avec caractères génériques vue ci-dessous + pour inclure des fichiers dont le nom correspond à un modèle + particulier, comme *.conf par exemple.

+ +

Lorsqu'on utilise un caractère générique dans le nom de fichier + ou la partie répertoire du chemin, et si aucun fichier ou répertoire + ne correspond au modèle, la directive Include sera silencieusement ignorée. Si + un nom de fichier ou un répertoire du chemin est spécifié sans + caractère générique, et si ce répertoire ou fichier n'existe pas, la + directive Include échouera et + renverra un message d'erreur indiquant que le répertoire ou fichier + n'a pas pu être trouvé. Il + devient ainsi inutile de créer des fichiers fictifs destinés à + correspondre par défaut à un chemin contenant des caractères + génériques.

+ +

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 secondes
Défaut:KeepAliveTimeout 5
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
+

Le nombre de secondes pendant lesquelles Apache va attendre une + requête avant de fermer la connexion. 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:Restreint les contrôles d'accès que la section contient à +certaines méthodes HTTP
Syntaxe:<Limit méthode [méthode] ... > ... + </Limit>
Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:All
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.

+ +
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.
+ + +
+
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:configuration du serveur, serveur virtuel, répertoire, .htaccess
Annuler:All
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'un chemin d'url). 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, serveur virtuel
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 fonctionnent 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 +

+ +

Avertissement

+

Dans le cas des serveurs virtuels par noms, la valeur de + cette directive est extraite du serveur virtuel par défaut (le + premier de la liste) pour lequel la connexion correspondait à la + directive NameVirtualHost.

+
+ + +
+
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, serveur virtuel
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.
+ +

Avertissement

+

Dans le cas des serveurs virtuels par noms, la valeur de + cette directive est extraite du serveur virtuel par défaut (le + premier de la liste) pour lequel la connexion correspondait à la + directive NameVirtualHost.

+
+ + +
+
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, serveur virtuel
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.
+ +

Avertissement

+

Dans le cas des serveurs virtuels par noms, la valeur de + cette directive est extraite du serveur virtuel par défaut (le + premier de la liste) pour lequel la connexion correspondait à la + directive NameVirtualHost.

+
+ + +
+
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 à cette règle 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 également 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>.

+ +

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. En revanche, 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
+

La directive NameVirtualHost est + obligatoire si vous envisagez de configurer des serveurs virtuels par nom.

+ +

Bien que adresse puisse être un nom d'hôte, il est + recommandé d'utiliser plutôt une adresse IP, comme

+ +

+ NameVirtualHost 111.22.33.44 +

+ +

La directive NameVirtualHost vous permet + de spécifier l'adresse IP sur laquelle le serveur recevra des + requêtes pour des serveurs virtuels basés sur le nom. Il s'agit en + général de l'adresse à laquelle correspondent vos noms de serveurs + virtuels basés sur le nom. Dans le cas où un par-feu ou autre + mandataire reçoit les requêtes et les fait suivre au serveur avec + une adresse IP différente, vous devez spécifier l'adresse IP de + l'interface physique du serveur qui traite les requêtes. Si vous + avez plusieurs serveurs virtuels basés sur le nom avec plusieurs + adresses, utilisez une directive pour chaque adresse.

+ +

Note

+

Notez que le "serveur principal" et tout serveur + _default_ ne seront jamais + sollicités pour une requête vers une adresse + NameVirtualHost (à moins que pour une + raison ou pour une autre, vous spécifiiez un + NameVirtualHost sans définir de + VirtualHosts pour cette adresse).

+
+ +

Vous pouvez également ajouter un numéro de port sur lequel + les serveurs virtuels basés sur le nom répondront, comme

+ +

+ NameVirtualHost 111.22.33.44:8080 +

+ +

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

+ +

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

+ +

Pour recevoir les requêtes sur toutes les interfaces, vous pouvez + utiliser comme argument *:80, ou * dans le + cas où vous écoutez sur plusieurs ports et souhaitez vraiment que le + serveur réponde sur chacun d'entre eux avec un jeu de serveurs + virtuels particulier.

+ +

+ NameVirtualHost *:80 +

+ +

Argument de la directive <VirtualHost>

+

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

+ +

+ NameVirtualHost 1.2.3.4
+ <VirtualHost 1.2.3.4>
+ # ...
+ </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ée 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ées. + 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
+

Protocol Directive

+ + + + + + + +
Description:Protocole pour une socket d'écoute
Syntaxe:Protocol protocole
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
Compatibilité:Disponible depuis la version 2.1.5 d'Apache, mais +uniquement depuis la version 2.3.3 sous Windows.
+

Cette directive permet de spécifier le protocole utilisé pour une + socket d'écoute particulière. Le protocole sert à déterminer quel + module doit traiter une requête, et d'appliquer les optimisations + spécifiques au protocole via la directive + AcceptFilter.

+ +

Vous ne devez définir le protocole que si vous travaillez avec + des ports non standards ; dans le cas général, le protocole + http est associé au port 80 et le protocole + https au port 443.

+ +

Par exemple, si vous travaillez avec le protocole + https sur un port non standard, spécifiez le protocole + de manière explicite :

+ +

+ Protocol https +

+ +

Vous pouvez aussi spécifier le protocole via la directive + Listen.

+ +

Voir aussi

+ +
+
top
+

Require Directive

+ + + + + + + +
Description:Détermine les utilisateurs authentifiés autorisés à accéder +à une ressource
Syntaxe:Require nom entité [nom entité] ...
Contexte:répertoire, .htaccess
Annuler:AuthConfig
Statut:Core
Module:core
+

Cette directive permet de déterminer les utilisateurs + authentifiés autorisés à accéder à une ressource. De multiples + instances de cette directive se combinent entre elles avec un "OU" + logique, si bien qu'un utilisateur qui convient à une ligne + Require reçoit l'autorisation d'accès. + Les restrictions + sont traitées par les modules d'autorisation. Voici quelques + exemples de syntaxes autorisées par mod_authz_user + et mod_authz_groupfile :

+ +
+
Require user identifiant_utilisateur + [identifiant_utilisateur] + ...
+
Seuls les utilisateurs spécifiés peuvent accéder à la + ressource.
+ +
Require group nom_groupe [nom_groupe] + ...
+
Seuls les utilisateurs appartenant aux groupes spécifiés + peuvent accéder à la ressource.
+ +
Require valid-user
+
Tout utilisateur valide peut accéder à la ressource.
+
+ +

D'autres modules d'autorisation comme + mod_authnz_ldap, mod_authz_dbm, et + mod_authz_owner implémentent les options de la + directive Require.

+ +

La directive Require doit être associée + aux directives AuthName et + AuthType, ainsi qu'à des + directives telles que AuthUserFile et AuthGroupFile (pour la + définition des utilisateurs et des groupes) afin de pouvoir + fonctionner correctement. Exemple :

+ +

+ AuthType Basic
+ AuthName "Ressource à accès restreint"
+ AuthUserFile /web/users
+ AuthGroupFile /web/groups
+ Require group admin +

+ +

Les contrôles d'accès appliqués de cette manière sont effectifs + pour toutes les méthodes HTTP. C'est en général + ce que l'on souhaite. Si vous désirez n'appliquer les + contrôles d'accès que pour certaines méthodes, tout en laissant les + autres méthodes sans protection, vous devez placer la directive + Require à l'intérieur d'une section + <Limit>.

+ +

Si la directive Require est utilisée + conjointement avec les directives Allow ou Deny, l'interaction entre les + différentes restrictions imposées est contrôlée par la directive + Satisfy.

+ +

Désactivation des contrôles d'accès pour certains + sous-répertoires

+

L'exemple suivant montre comment utiliser la directive Satisfy pour désactiver les contrôles + d'accès dans un sous-répertoire d'un répertoire protégé. Cette + technique doit être utilisée avec précautions, car elle va aussi + désactiver tout contrôle d'accès imposé par + mod_authz_host.

+

+ <Directory /chemin/vers/protégé/>
+ + Require user david
+
+ </Directory>
+ <Directory /chemin/vers/protégé/non-protégé>
+ + # Tous les contrôle d'accès et authentifications sont + # désactivés pour ce répertoire
+ Satisfy Any
+ Allow from all
+
+ </Directory>
+

+
+ + +

Voir aussi

+ +
+
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
+

Satisfy Directive

+ + + + + + + + + +
Description:Interaction entre les contrôles d'accès par hôte +et l'authentification des utilisateurs
Syntaxe:Satisfy Any|All
Défaut:Satisfy All
Contexte:répertoire, .htaccess
Annuler:AuthConfig
Statut:Core
Module:core
Compatibilité:Influencé par les sections <Limit> et <LimitExcept> dans les versions 2.0.51 et +supérieures
+

Cette directive permet de définir la politique d'accès lorsque + les directives Allow et Require sont utilisées conjointement. + L'argument prend pour valeur All ou Any. + Cette directive ne s'avère utile que dans le cas où l'accès à une + zone particulière est contrôlé à la fois par une authentification + utilisateur/mot de passe et par l'adresse IP du client. + Avec la valeur par défaut de l'argument (All), le + client doit d'abord satisfaire à la condition d'accès en fonction de + son adresse IP, puis fournir un couple utilisateur/mot de + passe valide. Si l'argument est Any, le client se verra + accorder l'accès s'il satisfait à au moins une des conditions d'accès + : adresse IP et/ou un couple utilisateur/mot de passe valides. On + peut utiliser cette valeur pour restreindre l'accès à une zone à + l'aide d'un mot de passe, mais laisser cette zone en accès libre + pour les clients possédant certaines adresses IP.

+ +

Par exemple, si vous souhaitez accorder un accès sans restriction + à une portion de votre site web aux clients de votre réseau, mais + n'accorder cet accès aux clients à l'extérieur de votre réseau qu'en + échange d'un mot de passe, vous pouvez utiliser une configuration de + ce style :

+ +

+ Require valid-user
+ Order allow,deny
+ Allow from 192.168.1
+ Satisfy Any +

+ +

Depuis la version 2.0.51, les directives + Satisfy peuvent être limitées à certaines + méthodes particulières à l'aide des sections <Limit> et <LimitExcept>.

+ +

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.

+ +

Par exemple, pour que les scripts possédant l'extension .pl + soient traités par perl, la ligne du registre doit être :

+ +

HKEY_CLASSES_ROOT\.pl\Shell\ExecCGI\Command\(Default) + => C:\Perl\bin\perl.exe -wT

+ +

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.example.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 *.example.com
+ UseCanonicalName Off
+ # ...
+ </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.

+ +

La directive ServerName permet aussi + (éventuellement en conjonction avec la directive + ServerAlias) d'identifier de manière unique + un serveur virtuel, lorsqu'elle est utilisée dans un contexte de serveurs virtuels par + noms.

+ +

Par exemple, si le nom de la + machine hébergeant le serveur web est + simple.example.com, la machine possède l'alias + DNS www.example.com, et si vous voulez que le serveur + web s'identifie avec cet alias, vous devez utilisez la définition + suivante :

+ +

+ ServerName www.example.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.

+ +

Depuis 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 + également 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.

+ +

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 dans diverses circonstances :

+ +
    +
  1. Lors de la lecture de données en provenance du client, le + temps maximum d'attente avant l'arrivée d'un paquet TCP si le + tampon de lecture est vide.
  2. + +
  3. Lors de l'envoi de données vers le client, le temps maximum + d'attente avant 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 maximum + d'attente avant la sortie des données d'un script CGI.
  6. + +
  7. Avec mod_ext_filter, le temps maximum + d'attente avant la sortie des données d'un processus de + filtrage.
  8. + +
  9. Avec mod_proxy, la valeur du délai par défaut + si la directive ProxyTimeout n'a pas été + définie.
  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 par + 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 par 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.example.com
+ DocumentRoot /www/docs/host.example.com
+ ServerName host.example.com
+ ErrorLog logs/host.example.com-error_log
+ TransferLog logs/host.example.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.example.com
+ DocumentRoot /www/docs/host.example.com
+ ServerName host.example.com
+ ErrorLog logs/host.example.com-error_log
+ TransferLog logs/host.example.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 (Notez + cependant que toute adresse IP correspondant à une directive + NameVirtualHost n'utilisera ni + la configuration du serveur "principal", ni le serveur virtuel + _default_. Voir la documentation de l'hébergement virtuel par + nom pour plus de détails).

+ +

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 la 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 00000000000..753cd0edcdd --- /dev/null +++ b/docs/manual/mod/core.xml.fr @@ -0,0 +1,3835 @@ + + + + + + + + + + + +core +Fonctionnalités de base du serveur HTTP Apache disponibles +en toutes circonstances +Core + + +AcceptFilter +Permet d'optimiser la configuration d'un socket pour +l'écoute d'un protocole +AcceptFilter protocole filtre +d'acceptation +server config +Disponible avec Apache version 2.1.5 et +supérieures + + +

Cette directive permet d'effectuer une optimisation du 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 et le filtre plus + primitif TCP_DEFER_ACCEPT sous Linux sont actuellement + supportés.

+ +

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).

+ +

L'utilisation de la valeur none comme argument + désactive tout filtre d'acceptation pour ce protocole. Elle peut + être utile dans le cas d'un protocole pour lequel un serveur doit + d'abord envoyer des données, comme nntp :

+ AcceptFilter nntp none + +
+Protocol +
+ + +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 avec 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 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 MIME +particulier +AddOutputFilterByType filtre[;filtre...] +type MIME [type MIME] ... +server config +virtual hostdirectory +.htaccess +FileInfo +Disponible dans Apache version 2.0.33 et supérieures ; +obsolète depuis les versions 2.1 + + +

Cette directive active un filtre en sortie particulier pour une + requête en fonction du type MIME 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 MIME + n'a pas pu être déterminé et est dans ce cas défini par la + directive DefaultType, même + si la directive DefaultType a + la même valeur.

+ +

Cependant, 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 tel quel +AllowEncodedSlashes On|Off +AllowEncodedSlashes Off +server configvirtual host + +Disponible dans Apache version 2.0.46 et +ulté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 tel quel 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 DefaultType, ErrorDocument, ForceType, LanguagePriority, + SetHandler, SetInputFilter, SetOutputFilter, et directives du + module mod_mime Add* et Remove*, + etc...), 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 "internal + server error".

+ +

Pour des raisons de sécurité et de performances, n'affectez + pas à AllowOverride une autre valeur que + None dans votre bloc <Directory />. + Configurez plutôt le bloc <Directory> qui + concerne le répertoire dans lequel vous voulez placer votre fichier + .htaccess (ou créez-le s'il n'existe pas).

+
+ +
+ +AccessFileName +Fichiers de Configuration +Fichiers .htaccess +
+ + +AuthName +Identificateur d'autorisation à utiliser pour +l'authentification HTTP +AuthName domaine d'authentification +directory.htaccess + +AuthConfig + + +

Cette directive permet de définir l'identificateur d'autorisation + pour un répertoire. Cet identificateur est fourni au client afin que + ce dernier sache quels nom d'utilisateur et mot de passe envoyer. + AuthName n'accepte qu'un seul argument ; si + l'identificateur contient des espaces, il doit être entouré + d'apostrophes. Il doit être associé à des directives AuthType et Require, ainsi qu'à des directives telles + que AuthUserFile et + AuthGroupFile + pour pouvoir fonctionner.

+ +

Par exemple :

+ + + AuthName "Top Secret" + + +

La chaîne de caractères définie par la directive + AuthName correspond à celle que la plupart des + navigateurs vont fournir dans la boîte de dialogue de saisie du mot + de passe.

+
+Authentification, Autorisation, et + contrôle d'accès +
+ + +AuthType +Le type d'authentification de l'utilisateur +AuthType Basic|Digest +directory.htaccess + +AuthConfig + + +

Cette directive permet de définir le type d'authentification de + l'utilisateur pour un répertoire. Les types d'authentification + disponibles sont Basic (implémenté par + mod_auth_basic), et Digest (implémenté + par mod_auth_digest).

+ +

Pour que l'authentification fonctionne, vous devez aussi définir + les directives AuthName et Require. + En outre, le serveur doit avoir à sa disposition un module + fournisseur d'authentification tel que + mod_authn_file et un module d'autorisation tel que + mod_authz_user.

+
+ +Authentification, Autorisation, et + contrôle d'accès +
+ + +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 +Type de contenu MIME qui sera envoyé par défaut si le +serveur ne peut le déterminer d'aucune manière +DefaultType type MIME|none +DefaultType text/plain +server configvirtual host +directory.htaccess + +FileInfo +L'argument none est disponible dans les +versions d'Apache 2.2.7 et supérieures + + +

Il peut arriver que le serveur doive servir un document dont il + ne peut pas déterminer le type à partir de sa table de types MIME.

+ +

Le serveur DEVRAIT fournir au client le type de contenu du + document. Si le serveur n'est pas capable de le déterminer par la + voie normale, il fournira le type défini par la directive + DefaultType. Par exemple :

+ + + DefaultType image/gif + + +

conviendra pour un répertoire contenant de nombreuses images GIF + dont le fichier ne comporte pas l'extension .gif.

+ +

Dans les cas où ni le serveur, ni l'administrateur (ou un + serveur mandataire) ne sont en mesure de déterminer le type du + document, il est préférable de ne pas le mentionner, plutôt que de + fournir de fausses informations. À cet effet, on utilise

+ + DefaultType None + +

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

+ +

Notez qu'à la différence de la directive ForceType, cette directive ne définit que + le type MIME par défaut. Toute autre définition de type MIME, y + compris l'extension des noms de fichiers, susceptible de + permettre d'identifier le type de média l'emportera sur la valeur + par défaut.

+
+
+ + +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 expressions rationnelles + 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 la 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 configvirtual 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.

+ + Caractère de fin de ligne +

Cette directive ne tient pas compte du caractère de fin de + ligne ($).

+
+ +
+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 de l'arborescence des documents principale 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 + terminal.

+
+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) s'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. Cependant, sur certains systèmes, 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.
  • +
  • La suppression ou la troncature d'un fichier faisant l'objet + d'une image en mémoire peut provoquer un crash de + httpd avec une erreur de segmentation. +
  • +
+ +

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> + +

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. +

+
+
+ + +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 plateforme Itanium, sendfile peut s'avérer + r.{1,2}pertoireincapable 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> + +
+
+ + +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 ces 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.

+ +

Si vous utilisez mod_proxy, il est en général préférable + d'activer ProxyErrorOverride afin d'être en + mesure de produire des messages d'erreur personnalisés pour le + compte de votre serveur d'origine. Si vous n'activez pas + ProxyErrorOverride, Apache ne générera pas de messages d'erreur + personnalisés pour le contenu mandaté.

+ +

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 +et OS/2) +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ére 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" + + +

Voir les notes à propos des journaux + redirigés pour plus de détails.

+ +

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 pour les fichiers statiques +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 statique (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 dézsormais de choisir + quelles caractéristiques du fichier vont être éventuellement + utilisées. 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. + + Inclusions côté serveur + Aucun champ ETag n'est généré pour les réponses interprétées par + mod_include, car l'entité de la réponse peut + changer sans modification de l'INode, du MTime, ou de la taille du + fichier statique contenant les directives SSI. + + +
+
+ + +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 un type de contenu MIME pour les fichiers +spécifiés +ForceType type MIME|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 MIME. 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 qu'à la différence de DefaultType, cette directive l'emporte sur + toute méthode d'attribution du type MIME, y compris les extensions + de nom de fichier, qui parviendrait à identifier le type de + médium.

+ +

Vous pouvez annuler toute autre définition + ForceType en affectant la valeur + None à l'argument type MIME :

+ + + # 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> +
+
+
+ + +GprofDir +Répertoire dans lequel écrire les données de profiling +gmon.out. +GprofDir /tmp/gprof/|/tmp/gprof/% +server configvirtual host + + + +

Lorsque le serveur a été compilé avec le support du profiling + gprof, la directive GprofDir permet de + spécifier dans quel répertoire les fichiers gmon.out + doivent être écrits lorsque le processus s'arrête. Si l'argument se + termine par un caractère pourcentage ('%'), des sous-répertoires + sont créés pour chaque identifiant de processus.

+ +

Cette directive ne fonctionne actuellement qu'avec le MPM + prefork.

+
+
+ + +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 noms 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.

+
+
+ + +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.

+ +

La définition de l'argument nom paramètre + s'effectue au niveau de la ligne de commande + httpd via le paramètre + -Dparamètre au démarrage du serveur.

+ +

Les sections IfDefine + peuvent être imbriquées, ce qui permet de mettre en oeuvre 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, utilisation des caractères génériques pour les répertoires +depuis la version 2.3.6 + + +

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()) dans le nom du fichier ou la partie + répertoire 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. Nous vous recommandons + plutôt d'utiliser la syntaxe avec caractères génériques vue ci-dessous + pour inclure des fichiers dont le nom correspond à un modèle + particulier, comme *.conf par exemple.

+ +

Lorsqu'on utilise un caractère générique dans le nom de fichier + ou la partie répertoire du chemin, et si aucun fichier ou répertoire + ne correspond au modèle, la directive Include sera silencieusement ignorée. Si + un nom de fichier ou un répertoire du chemin est spécifié sans + caractère générique, et si ce répertoire ou fichier n'existe pas, la + directive Include échouera et + renverra un message d'erreur indiquant que le répertoire ou fichier + n'a pas pu être trouvé. Il + devient ainsi inutile de créer des fichiers fictifs destinés à + correspondre par défaut à un chemin contenant des caractères + génériques.

+ +

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 secondes +KeepAliveTimeout 5 +server configvirtual host + + + +

Le nombre de secondes pendant lesquelles Apache va attendre une + requête avant de fermer la connexion. 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 +Restreint les contrôles d'accès que la section contient à +certaines méthodes HTTP +<Limit méthode [méthode] ... > ... + </Limit> +server configvirtual host +directory.htaccess + +All + + +

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.

+ + 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. + +
+
+ + +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> +server configvirtual host +directory.htaccess + +All + + +

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'un chemin d'url). 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 configvirtual host + + +

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 fonctionnent 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 + + + Avertissement +

Dans le cas des serveurs virtuels par noms, la valeur de + cette directive est extraite du serveur virtuel par défaut (le + premier de la liste) pour lequel la connexion correspondait à la + directive NameVirtualHost.

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

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. + + Avertissement +

Dans le cas des serveurs virtuels par noms, la valeur de + cette directive est extraite du serveur virtuel par défaut (le + premier de la liste) pour lequel la connexion correspondait à la + directive NameVirtualHost.

+
+ +
+
+ + +LimitRequestLine +Définit la taille maximale d'une ligne de requête +HTTP +LimitRequestLine octets +LimitRequestLine 8190 +server configvirtual host + + +

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. + + Avertissement +

Dans le cas des serveurs virtuels par noms, la valeur de + cette directive est extraite du serveur virtuel par défaut (le + premier de la liste) pour lequel la connexion correspondait à la + directive NameVirtualHost.

+
+ +
+
+ + +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 à cette règle 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 également 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.

+ +

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. En revanche, 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 + + +

La directive NameVirtualHost est + obligatoire si vous envisagez de configurer des serveurs virtuels par nom.

+ +

Bien que adresse puisse être un nom d'hôte, il est + recommandé d'utiliser plutôt une adresse IP, comme

+ + + NameVirtualHost 111.22.33.44 + + +

La directive NameVirtualHost vous permet + de spécifier l'adresse IP sur laquelle le serveur recevra des + requêtes pour des serveurs virtuels basés sur le nom. Il s'agit en + général de l'adresse à laquelle correspondent vos noms de serveurs + virtuels basés sur le nom. Dans le cas où un par-feu ou autre + mandataire reçoit les requêtes et les fait suivre au serveur avec + une adresse IP différente, vous devez spécifier l'adresse IP de + l'interface physique du serveur qui traite les requêtes. Si vous + avez plusieurs serveurs virtuels basés sur le nom avec plusieurs + adresses, utilisez une directive pour chaque adresse.

+ + Note +

Notez que le "serveur principal" et tout serveur + _default_ ne seront jamais + sollicités pour une requête vers une adresse + NameVirtualHost (à moins que pour une + raison ou pour une autre, vous spécifiiez un + NameVirtualHost sans définir de + VirtualHosts pour cette adresse).

+
+ +

Vous pouvez également ajouter un numéro de port sur lequel + les serveurs virtuels basés sur le nom répondront, comme

+ + + NameVirtualHost 111.22.33.44:8080 + + +

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

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

Pour recevoir les requêtes sur toutes les interfaces, vous pouvez + utiliser comme argument *:80, ou * dans le + cas où vous écoutez sur plusieurs ports et souhaitez vraiment que le + serveur réponde sur chacun d'entre eux avec un jeu de serveurs + virtuels particulier.

+ + + NameVirtualHost *:80 + + + 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 1.2.3.4
+ <VirtualHost 1.2.3.4>
+ # ...
+ </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ée 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ées. + 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.

+
+
+ + +Require +Détermine les utilisateurs authentifiés autorisés à accéder +à une ressource +Require nom entité [nom entité] ... +directory.htaccess + +AuthConfig + + +

Cette directive permet de déterminer les utilisateurs + authentifiés autorisés à accéder à une ressource. De multiples + instances de cette directive se combinent entre elles avec un "OU" + logique, si bien qu'un utilisateur qui convient à une ligne + Require reçoit l'autorisation d'accès. + Les restrictions + sont traitées par les modules d'autorisation. Voici quelques + exemples de syntaxes autorisées par mod_authz_user + et mod_authz_groupfile :

+ +
+
Require user identifiant_utilisateur + [identifiant_utilisateur] + ...
+
Seuls les utilisateurs spécifiés peuvent accéder à la + ressource.
+ +
Require group nom_groupe [nom_groupe] + ...
+
Seuls les utilisateurs appartenant aux groupes spécifiés + peuvent accéder à la ressource.
+ +
Require valid-user
+
Tout utilisateur valide peut accéder à la ressource.
+
+ +

D'autres modules d'autorisation comme + mod_authnz_ldap, mod_authz_dbm, et + mod_authz_owner implémentent les options de la + directive Require.

+ +

La directive Require doit être associée + aux directives AuthName et + AuthType, ainsi qu'à des + directives telles que AuthUserFile et AuthGroupFile (pour la + définition des utilisateurs et des groupes) afin de pouvoir + fonctionner correctement. Exemple :

+ + + AuthType Basic
+ AuthName "Ressource à accès restreint"
+ AuthUserFile /web/users
+ AuthGroupFile /web/groups
+ Require group admin +
+ +

Les contrôles d'accès appliqués de cette manière sont effectifs + pour toutes les méthodes HTTP. C'est en général + ce que l'on souhaite. Si vous désirez n'appliquer les + contrôles d'accès que pour certaines méthodes, tout en laissant les + autres méthodes sans protection, vous devez placer la directive + Require à l'intérieur d'une section + Limit.

+ +

Si la directive Require est utilisée + conjointement avec les directives Allow ou Deny, l'interaction entre les + différentes restrictions imposées est contrôlée par la directive + Satisfy.

+ + Désactivation des contrôles d'accès pour certains + sous-répertoires +

L'exemple suivant montre comment utiliser la directive Satisfy pour désactiver les contrôles + d'accès dans un sous-répertoire d'un répertoire protégé. Cette + technique doit être utilisée avec précautions, car elle va aussi + désactiver tout contrôle d'accès imposé par + mod_authz_host.

+ + <Directory /chemin/vers/protégé/>
+ + Require user david
+
+ </Directory>
+ <Directory /chemin/vers/protégé/non-protégé>
+ + # Tous les contrôle d'accès et authentifications sont + # désactivés pour ce répertoire
+ Satisfy Any
+ Allow from all
+
+ </Directory>
+
+
+ +
+ +Authentification, autorisation, + et contrôle d'accès +Satisfy +mod_authz_host +
+ + +Protocol +Protocole pour une socket d'écoute +Protocol protocole +server configvirtual host +Disponible depuis la version 2.1.5 d'Apache, mais +uniquement depuis la version 2.3.3 sous Windows. + + +

Cette directive permet de spécifier le protocole utilisé pour une + socket d'écoute particulière. Le protocole sert à déterminer quel + module doit traiter une requête, et d'appliquer les optimisations + spécifiques au protocole via la directive + AcceptFilter.

+ +

Vous ne devez définir le protocole que si vous travaillez avec + des ports non standards ; dans le cas général, le protocole + http est associé au port 80 et le protocole + https au port 443.

+ +

Par exemple, si vous travaillez avec le protocole + https sur un port non standard, spécifiez le protocole + de manière explicite :

+ + + Protocol https + + +

Vous pouvez aussi spécifier le protocole via la directive + Listen.

+
+AcceptFilter +Listen +
+ + +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 +
+ + +Satisfy +Interaction entre les contrôles d'accès par hôte +et l'authentification des utilisateurs +Satisfy Any|All +Satisfy All +directory.htaccess + +AuthConfig +Influencé par les sections Limit et LimitExcept dans les versions 2.0.51 et +supérieures + + +

Cette directive permet de définir la politique d'accès lorsque + les directives Allow et Require sont utilisées conjointement. + L'argument prend pour valeur All ou Any. + Cette directive ne s'avère utile que dans le cas où l'accès à une + zone particulière est contrôlé à la fois par une authentification + utilisateur/mot de passe et par l'adresse IP du client. + Avec la valeur par défaut de l'argument (All), le + client doit d'abord satisfaire à la condition d'accès en fonction de + son adresse IP, puis fournir un couple utilisateur/mot de + passe valide. Si l'argument est Any, le client se verra + accorder l'accès s'il satisfait à au moins une des conditions d'accès + : adresse IP et/ou un couple utilisateur/mot de passe valides. On + peut utiliser cette valeur pour restreindre l'accès à une zone à + l'aide d'un mot de passe, mais laisser cette zone en accès libre + pour les clients possédant certaines adresses IP.

+ +

Par exemple, si vous souhaitez accorder un accès sans restriction + à une portion de votre site web aux clients de votre réseau, mais + n'accorder cet accès aux clients à l'extérieur de votre réseau qu'en + échange d'un mot de passe, vous pouvez utiliser une configuration de + ce style :

+ + + Require valid-user
+ Order allow,deny
+ Allow from 192.168.1
+ Satisfy Any +
+ +

Depuis la version 2.0.51, les directives + Satisfy peuvent être limitées à certaines + méthodes particulières à l'aide des sections Limit et LimitExcept.

+
+ Allow + Require +
+ + +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.

+ +

Par exemple, pour que les scripts possédant l'extension .pl + soient traités par perl, la ligne du registre doit être :

+ + HKEY_CLASSES_ROOT\.pl\Shell\ExecCGI\Command\(Default) + => C:\Perl\bin\perl.exe -wT + + 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.example.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 *.example.com
+ UseCanonicalName Off
+ # ...
+ </VirtualHost> +
+
+UseCanonicalName +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.

+ +

La directive ServerName permet aussi + (éventuellement en conjonction avec la directive + ServerAlias) d'identifier de manière unique + un serveur virtuel, lorsqu'elle est utilisée dans un contexte de serveurs virtuels par + noms.

+ +

Par exemple, si le nom de la + machine hébergeant le serveur web est + simple.example.com, la machine possède l'alias + DNS www.example.com, et si vous voulez que le serveur + web s'identifie avec cet alias, vous devez utilisez la définition + suivante :

+ + + ServerName www.example.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 la 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.

+ +

Depuis 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 + également 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.

+
+ +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 dans diverses circonstances :

+ +
    +
  1. Lors de la lecture de données en provenance du client, le + temps maximum d'attente avant l'arrivée d'un paquet TCP si le + tampon de lecture est vide.
  2. + +
  3. Lors de l'envoi de données vers le client, le temps maximum + d'attente avant 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 maximum + d'attente avant la sortie des données d'un script CGI.
  6. + +
  7. Avec mod_ext_filter, le temps maximum + d'attente avant la sortie des données d'un processus de + filtrage.
  8. + +
  9. Avec mod_proxy, la valeur du délai par défaut + si la directive ProxyTimeout n'a pas été + définie.
  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 par + 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 par 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.example.com
+ DocumentRoot /www/docs/host.example.com
+ ServerName host.example.com
+ ErrorLog logs/host.example.com-error_log
+ TransferLog logs/host.example.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.example.com
+ DocumentRoot /www/docs/host.example.com
+ ServerName host.example.com
+ ErrorLog logs/host.example.com-error_log
+ TransferLog logs/host.example.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 (Notez + cependant que toute adresse IP correspondant à une directive + NameVirtualHost n'utilisera ni + la configuration du serveur "principal", ni le serveur virtuel + _default_. Voir la documentation de l'hébergement virtuel par + nom pour plus de détails).

+ +

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 la 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 +
+ +
diff --git a/docs/manual/mod/core.xml.meta b/docs/manual/mod/core.xml.meta index 7944255fe81..975602fe88e 100644 --- a/docs/manual/mod/core.xml.meta +++ b/docs/manual/mod/core.xml.meta @@ -9,6 +9,7 @@ de en + fr ja tr