<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
-<!-- English Revision: 1673563 -->
+<!-- English Revision: 1885047 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
HTTP Apache.</p>
<p>Le premier type correspond aux variables d'environnement
- contrôlées par le système d'exploitation sous-jacent et définies
- avant le démarrage du serveur. Leurs valeurs peuvent être utilisées
+ contrôlées par le système d'exploitation sous-jacent et définies
+ avant le démarrage du serveur. Leurs valeurs peuvent être utilisées
directement dans les fichiers de configuration, et peuvent
- éventuellement être transmises aux scripts CGI et SSI via la
+ éventuellement être transmises aux scripts CGI et SSI via la
directive PassEnv.</p>
- <p>Le second type correspond aux variables nommées appelées aussi
+ <p>Le second type correspond aux variables nommées appelées aussi
<em>variables d'environnement</em> dans lesquelles le serveur HTTP
- Apache stocke des informations via un mécanisme spécial. Ces
- informations peuvent servir à contrôler diverses opérations comme
- l'enregistrement des traces ou le contrôle d'accès. On utilise aussi ces
- variables dans le mécanisme de communication avec les programmes externes
- comme les scripts CGI. Ce document présente différentes méthodes pour
+ Apache stocke des informations via un mécanisme spécial. Ces
+ informations peuvent servir à contrôler diverses opérations comme
+ l'enregistrement des traces ou le contrôle d'accès. On utilise aussi ces
+ variables dans le mécanisme de communication avec les programmes externes
+ comme les scripts CGI. Ce document présente différentes méthodes pour
manipuler et utiliser ces variables.</p>
- <p>Bien que ces variables soient référencées comme <em>variables
+ <p>Bien que ces variables soient référencées comme <em>variables
d'environnement</em>, il ne faut pas les confondre avec les variables
- d'environnement contrôlées par le système d'exploitation sous-jacent.
- En fait, ces variables sont stockées et manipulées dans une structure
- interne à Apache. Elles ne deviennent de véritables variables
- d'environnement du système d'exploitation que lorsqu'elles sont mises à la
- disposition de scripts CGI et de scripts inclus côté serveur (SSI). Si vous
- souhaitez manipuler l'environnement du système d'exploitation sous lequel
- le serveur s'exécute, vous devez utiliser les mécanismes standards de
- manipulation de l'environnement fournis par l'interpréteur de commandes
- (shell) de votre système d'exploitation.</p>
+ d'environnement contrôlées par le système d'exploitation sous-jacent.
+ En fait, ces variables sont stockées et manipulées dans une structure
+ interne à Apache. Elles ne deviennent de véritables variables
+ d'environnement du système d'exploitation que lorsqu'elles sont mises à la
+ disposition de scripts CGI et de scripts inclus côté serveur (SSI). Si vous
+ souhaitez manipuler l'environnement du système d'exploitation sous lequel
+ le serveur s'exécute, vous devez utiliser les mécanismes standards de
+ manipulation de l'environnement fournis par l'interpréteur de commandes
+ (shell) de votre système d'exploitation.</p>
</summary>
<section id="setting">
- <title>Définition des variables d'environnement</title>
+ <title>Définition des variables d'environnement</title>
<related>
<modulelist>
<module>mod_cache</module>
<section id="basic-manipulation">
<title>Manipulations de base de l'environnement</title>
- <p>La méthode la plus élémentaire pour définir une variable
- d'environnement au niveau d'Apache consiste à utiliser la directive
+ <p>La méthode la plus élémentaire pour définir une variable
+ d'environnement au niveau d'Apache consiste à utiliser la directive
inconditionnelle <directive module="mod_env"
- >SetEnv</directive>. Les variables peuvent aussi être transmises depuis
- l'environnement du shell à partir duquel le serveur a été démarré en
+ >SetEnv</directive>. Les variables peuvent aussi être transmises depuis
+ l'environnement du shell à partir duquel le serveur a été démarré en
utilisant la directive
<directive module="mod_env">PassEnv</directive>.</p>
</section>
<section id="conditional">
- <title>Définitions conditionnelles en fonction des requêtes</title>
+ <title>Définitions conditionnelles en fonction des requêtes</title>
<p>Pour plus de souplesse, les directives fournies par le module
- <module>mod_setenvif</module> permettent de définir les
- variables d'environnement en tenant compte des caractéristiques
- de chaque requête. Par exemple, une
- variable pourrait n'être définie que lorsqu'un navigateur spécifique
- (User-Agent) a généré la requête, ou seulement quand un en-tête
- Referer particulier est présent. La directive
+ <module>mod_setenvif</module> permettent de définir les
+ variables d'environnement en tenant compte des caractéristiques
+ de chaque requête. Par exemple, une
+ variable pourrait n'être définie que lorsqu'un navigateur spécifique
+ (User-Agent) a généré la requête, ou seulement quand un en-tête
+ Referer particulier est présent. La directive
<directive module="mod_rewrite">RewriteRule</directive> du module
<module>mod_rewrite</module> qui utilise l'option
- <code>[E=...]</code> pour définir
+ <code>[E=...]</code> pour définir
les variables d'environnement apporte encore plus de souplesse.</p>
</section>
<section id="unique-identifiers">
<title>Identifiants uniques</title>
- <p>Finalement, le module <module>mod_unique_id</module> définit la variable
- d'environnement <code>UNIQUE_ID</code> pour chaque requête à une valeur
- qui est garantie unique parmi "toutes" les requêtes sous des
- conditions très spécifiques.</p>
+ <p>Finalement, le module <module>mod_unique_id</module> définit la variable
+ d'environnement <code>UNIQUE_ID</code> pour chaque requête à une valeur
+ qui est garantie unique parmi "toutes" les requêtes sous des
+ conditions très spécifiques.</p>
</section>
<section id="standard-cgi">
<title>Variables CGI standards</title>
- <p>En plus de l'ensemble des variables d'environnement internes à la
+ <p>En plus de l'ensemble des variables d'environnement internes à la
configuration d'Apache et de celles transmises depuis le shell,
les scripts CGI et les pages SSI
- se voient affectés un ensemble de variables
- d'environnement contenant des méta-informations à propos de la requête
- comme préconisé dans la
- <a href="http://www.ietf.org/rfc/rfc3875">spécification
+ se voient affectés un ensemble de variables
+ d'environnement contenant des méta-informations à propos de la requête
+ comme préconisé dans la
+ <a href="http://www.ietf.org/rfc/rfc3875">spécification
sur les CGIs</a>.</p>
</section>
<li>Les directives de manipulation de l'environnement ne permettent
pas de supplanter ou modifier les variables CGI standards.</li>
- <li>Lorsqu'on utilise <program>suexec</program> pour exécuter des
- scripts CGI, l'environnement est nettoyé et réduit à un ensemble de
- variables <em>sûres</em> avant l'exécution du script. La liste des
- variables <em>sûres</em> est définie à la compilation dans
+ <li>Lorsqu'on utilise <program>suexec</program> pour exécuter des
+ scripts CGI, l'environnement est nettoyé et réduit à un ensemble de
+ variables <em>sûres</em> avant l'exécution du script. La liste des
+ variables <em>sûres</em> est définie à la compilation dans
<code>suexec.c</code>.</li>
- <li>Pour des raisons de portabilité, les noms des variables
+ <li>Pour des raisons de portabilité, les noms des variables
d'environnement ne peuvent contenir que des lettres, des chiffres, et
- le caractère "sousligné". En outre, le premier caractère ne doit pas
- être un chiffre. Les caractères qui ne satisfont pas à ces conditions
- seront remplacés par un caractère "sousligné" quand ils seront
+ le caractère "sousligné". En outre, le premier caractère ne doit pas
+ être un chiffre. Les caractères qui ne satisfont pas à ces conditions
+ seront remplacés par un caractère "sousligné" quand ils seront
transmis aux scripts CGI et aux pages SSI.</li>
- <li>Les contenus d'en-têtes HTTP transmis aux scripts de type
+ <li>Les contenus d'en-têtes HTTP transmis aux scripts de type
CGI ou autre via des variables d'environnement constituent un
cas particulier (voir plus loin). Leur nom est converti en
- majuscules et seuls les tirets sont remplacés par des
- caractères '_' ("souligné") ; si le format du nom de l'en-tête
- n'est pas valide, celui-ci est ignoré. Voir <a
+ majuscules et seuls les tirets sont remplacés par des
+ caractères '_' ("souligné") ; si le format du nom de l'en-tête
+ n'est pas valide, celui-ci est ignoré. Voir <a
href="#fixheader">plus loin</a> pour une solution de
- contournement du problème.</li>
+ contournement du problème.</li>
<li>La directive <directive
- module="mod_env">SetEnv</directive> s'exécute assez tard au
- cours du traitement de la requête, ce qui signifie que des
+ module="mod_env">SetEnv</directive> s'exécute assez tard au
+ cours du traitement de la requête, ce qui signifie que des
directives telles que <directive
module="mod_setenvif">SetEnvIf</directive> et <directive
module="mod_rewrite">RewriteCond</directive> ne verront pas
- les variables qu'elle aura définies.</li>
+ les variables qu'elle aura définies.</li>
<li>Lorsque le serveur cherche un chemin via une <glossary
- ref="subrequest">sous-requête</glossary> interne (par exemple la
+ ref="subrequest">sous-requête</glossary> interne (par exemple la
recherche d'un <directive
- module="mod_dir">DirectoryIndex</directive>), ou lorsqu'il génère un
- listing du contenu d'un répertoire via le module
- <module>mod_autoindex</module>, la sous-requête n'hérite pas des
- variables d'environnement spécifiques à la requête. En outre, à cause
+ module="mod_dir">DirectoryIndex</directive>), ou lorsqu'il génère un
+ listing du contenu d'un répertoire via le module
+ <module>mod_autoindex</module>, la sous-requête n'hérite pas des
+ variables d'environnement spécifiques à la requête. En outre, à cause
des phases de l'API auxquelles <module>mod_setenvif</module> prend
part, les directives <directive
- module="mod_setenvif">SetEnvIf</directive> ne sont pas évaluées
- séparément dans la sous-requête.</li>
+ module="mod_setenvif">SetEnvIf</directive> ne sont pas évaluées
+ séparément dans la sous-requête.</li>
</ul>
</section>
</section>
<directivelist>
<directive module="mod_authz_core">Require</directive>
<directive module="mod_log_config">CustomLog</directive>
+ <directive module="mod_access_compat">Allow</directive>
<directive module="mod_access_compat">Deny</directive>
<directive module="mod_ext_filter">ExtFilterDefine</directive>
<directive module="mod_headers">Header</directive>
<title>Scripts CGI</title>
<p>La communication d'informations aux scripts CGI constitue une des
- principales utilisations des variables d'environnement. Comme indiqué
+ principales utilisations des variables d'environnement. Comme indiqué
plus haut, l'environnement transmis aux scripts CGI comprend des
- méta-informations standards à propos de la requête, en plus des
- variables définies dans la configuration d'Apache. Pour plus de
- détails, se référer au
+ méta-informations standards à propos de la requête, en plus des
+ variables définies dans la configuration d'Apache. Pour plus de
+ détails, se référer au
<a href="howto/cgi.html">tutoriel CGI</a>.</p>
</section>
<section id="ssi-pages">
<title>Pages SSI</title>
- <p>Les documents inclus côté serveur (SSI) traités par le filtre
+ <p>Les documents inclus côté serveur (SSI) traités par le filtre
<code>INCLUDES</code> du module <module>mod_include</module>,
peuvent afficher les
- variables d'environnement à l'aide de l'élément <code>echo</code>,
- et peuvent utiliser des variables d'environnement dans les éléments
- de contrôle de flux pour rendre certaines parties d'une page
- conditionnelles en fonction des caractéristiques de la requête.
+ variables d'environnement à l'aide de l'élément <code>echo</code>,
+ et peuvent utiliser des variables d'environnement dans les éléments
+ de contrôle de flux pour rendre certaines parties d'une page
+ conditionnelles en fonction des caractéristiques de la requête.
Apache fournit aussi les variables d'environnement CGI standards
aux pages SSI
- comme indiqué plus haut. Pour plus de détails, se référer au
+ comme indiqué plus haut. Pour plus de détails, se référer au
<a href="howto/ssi.html">tutoriel SSI</a>.</p>
</section>
<section id="access-control">
- <title>Contrôle d'accès</title>
+ <title>Contrôle d'accès</title>
- <p>L'accès au serveur peut être contrôlé en fonction de la valeur de
- variables d'environnement à l'aide des directives
- <code>allow from env=</code> et <code>deny from env=</code>.
+ <p>L'accès au serveur peut être contrôlé en fonction de la valeur de
+ variables d'environnement à l'aide des directives
+ <code>Require env</code> et <code>Require not env</code>.
En association avec la directive
- <directive module="mod_setenvif">SetEnvIf</directive>, ceci confère une
- grande souplesse au contrôle d'accès au serveur en fonction des
- caractéristiques du client. Par exemple, vous pouvez utiliser ces
- directives pour interdire l'accès depuis un navigateur particulier
+ <directive module="mod_setenvif">SetEnvIf</directive>, ceci confère une
+ grande souplesse au contrôle d'accès au serveur en fonction des
+ caractéristiques du client. Par exemple, vous pouvez utiliser ces
+ directives pour interdire l'accès depuis un navigateur particulier
(User-Agent).
</p>
<section id="logging">
<title>Enregistrement conditionnel des traces</title>
- <p>Les variables d'environnement peuvent être enregistrées dans le
- fichier de log des accès à l'aide de l'option <code>%e</code> de la
+ <p>Les variables d'environnement peuvent être enregistrées dans le
+ fichier de log des accès à l'aide de l'option <code>%e</code> de la
directive <directive module="mod_log_config">LogFormat</directive>.
- En outre, la décision de tracer ou non les requêtes peut être prise
- en fonction de l'état de variables d'environnement en utilisant la
+ En outre, la décision de tracer ou non les requêtes peut être prise
+ en fonction de l'état de variables d'environnement en utilisant la
forme conditionnelle de la directive
<directive module="mod_log_config">CustomLog</directive>. En
association avec la directive <directive module="mod_setenvif"
- >SetEnvIf</directive>, ceci confère une grande souplesse au contrôle
- du traçage des requêtes. Par exemple, vous pouvez choisir de ne pas
- tracer les requêtes pour des noms de fichiers se terminant par
- <code>gif</code>, ou encore de ne tracer que les requêtes des clients
- n'appartenant pas à votre sous-réseau.</p>
+ >SetEnvIf</directive>, ceci confère une grande souplesse au contrôle
+ du traçage des requêtes. Par exemple, vous pouvez choisir de ne pas
+ tracer les requêtes pour des noms de fichiers se terminant par
+ <code>gif</code>, ou encore de ne tracer que les requêtes des clients
+ n'appartenant pas à votre sous-réseau.</p>
</section>
<section id="response-headers">
- <title>En-têtes de réponse conditionnels</title>
+ <title>En-têtes de réponse conditionnels</title>
<p>La directive <directive module="mod_headers">Header</directive>
- peut se baser sur la présence ou l'absence d'une variable
- d'environnement pour décider si un certain en-tête HTTP sera placé
- dans la réponse au client. Ceci permet, par exemple, de n'envoyer un
- certain en-tête de réponse que si un en-tête correspondant est présent
- dans la requête du client.</p>
+ peut se baser sur la présence ou l'absence d'une variable
+ d'environnement pour décider si un certain en-tête HTTP sera placé
+ dans la réponse au client. Ceci permet, par exemple, de n'envoyer un
+ certain en-tête de réponse que si un en-tête correspondant est présent
+ dans la requête du client.</p>
</section>
<section id="external-filter">
<title>Activation de filtres externes</title>
- <p>Les filtres externes configurés par le module
- <module>mod_ext_filter</module> à l'aide de la directive <directive
- module="mod_ext_filter">ExtFilterDefine</directive> peuvent être
- activés de manière conditionnelle en fonction d'une variable
- d'environnement à l'aide des options
+ <p>Les filtres externes configurés par le module
+ <module>mod_ext_filter</module> à l'aide de la directive <directive
+ module="mod_ext_filter">ExtFilterDefine</directive> peuvent être
+ activés de manière conditionnelle en fonction d'une variable
+ d'environnement à l'aide des options
<code>disableenv=</code> et <code>enableenv=</code>.</p>
</section>
<section id="url-rewriting">
- <title>Réécriture d'URL</title>
+ <title>Réécriture d'URL</title>
<p>La forme <code>%{ENV:<em>variable</em>}</code> de
<em>TestString</em> dans la
directive <directive module="mod_rewrite">RewriteCond</directive>
- permet au moteur de réécriture du module
+ permet au moteur de réécriture du module
<module>mod_rewrite</module> de prendre des
- décisions conditionnées par des variables d'environnement.
+ décisions conditionnées par des variables d'environnement.
Notez que les variables accessibles dans
- <module>mod_rewrite</module> sans le préfixe
- <code>ENV:</code> ne sont pas de véritables variables
- d'environnement. Ce sont plutôt des variables spécifiques à
+ <module>mod_rewrite</module> sans le préfixe
+ <code>ENV:</code> ne sont pas de véritables variables
+ d'environnement. Ce sont plutôt des variables spécifiques à
<module>mod_rewrite</module>
qui ne sont pas accessibles pour les autres modules.</p>
</section>
</section>
<section id="special">
- <title>Variables d'environnement à usage spécial</title>
+ <title>Variables d'environnement à usage spécial</title>
- <p>Des problèmes d'interopérabilité ont conduit à l'introduction de
- mécanismes permettant de modifier le comportement d'Apache lorsqu'il
- dialogue avec certains clients. Afin de rendre ces mécanismes aussi
- souples que possible, ils sont invoqués en définissant des variables
- d'environnement, en général à l'aide de la directive
+ <p>Des problèmes d'interopérabilité ont conduit à l'introduction de
+ mécanismes permettant de modifier le comportement d'Apache lorsqu'il
+ dialogue avec certains clients. Afin de rendre ces mécanismes aussi
+ souples que possible, ils sont invoqués en définissant des variables
+ d'environnement, en général à l'aide de la directive
<directive module="mod_setenvif">BrowserMatch</directive>, bien que les
directives <directive module="mod_env">SetEnv</directive> et
- <directive module="mod_env">PassEnv</directive> puissent aussi être
- utilisées, par exemple.</p>
+ <directive module="mod_env">PassEnv</directive> puissent aussi être
+ utilisées, par exemple.</p>
<section id="downgrade">
<title>downgrade-1.0</title>
- <p>Ceci force le traitement d'une requête comme une requête HTTP/1.0
- même si elle a été rédigée dans un langage plus récent.</p>
+ <p>Ceci force le traitement d'une requête comme une requête HTTP/1.0
+ même si elle a été rédigée dans un langage plus récent.</p>
</section>
<section id="force-gzip">
<title>force-gzip</title>
- <p>Si le filtre <code>DEFLATE</code> est activé, cette variable
- d'environnement ignorera les réglages accept-encoding de votre
- navigateur et enverra une sortie compressée inconditionnellement.</p>
+ <p>Si le filtre <code>DEFLATE</code> est activé, cette variable
+ d'environnement ignorera les réglages accept-encoding de votre
+ navigateur et enverra une sortie compressée inconditionnellement.</p>
</section>
<section id="force-no-vary">
<title>force-no-vary</title>
- <p>Cette variable entraîne la suppression de tout champ
- <code>Vary</code> des en-têtes de la réponse avant que cette dernière
- soit renvoyée au client. Certains clients n'interprètent pas ce champ
- correctement, et la définition de cette variable permet de contourner
- ce problème, mais implique aussi la définition de
+ <p>Cette variable entraîne la suppression de tout champ
+ <code>Vary</code> des en-têtes de la réponse avant que cette dernière
+ soit renvoyée au client. Certains clients n'interprètent pas ce champ
+ correctement, et la définition de cette variable permet de contourner
+ ce problème, mais implique aussi la définition de
<strong>force-response-1.0</strong>.</p>
</section>
<section id="force-response">
<title>force-response-1.0</title>
- <p>Cette variable force une réponse en langage HTTP/1.0 aux clients
- qui envoient des requêtes dans le même langage. Elle fut implémentée à
- l'origine suite à des problèmes avec les mandataires d'AOL. Certains
- clients en langage HTTP/1.0 ne réagissent pas correctement face à une
- réponse en langage HTTP/1.1, et cette variable peut être utilisée pour
- assurer l'interopérabilité avec eux.</p>
+ <p>Cette variable force une réponse en langage HTTP/1.0 aux clients
+ qui envoient des requêtes dans le même langage. Elle fut implémentée à
+ l'origine suite à des problèmes avec les mandataires d'AOL. Certains
+ clients en langage HTTP/1.0 ne réagissent pas correctement face à une
+ réponse en langage HTTP/1.1, et cette variable peut être utilisée pour
+ assurer l'interopérabilité avec eux.</p>
</section>
<section id="gzip-only-text-html">
<title>gzip-only-text/html</title>
- <p>Positionnée à "1", cette variable désactive le filtre en sortie
+ <p>Positionnée à "1", cette variable désactive le filtre en sortie
<code>DEFLATE</code> fourni par le module <module>mod_deflate</module> pour les
- types de contenu autres que <code>text/html</code>. Si vous préférez
- utiliser des fichiers compressés statiquement,
- <module>mod_negotiation</module> évalue aussi la variable (non
+ types de contenu autres que <code>text/html</code>. Si vous préférez
+ utiliser des fichiers compressés statiquement,
+ <module>mod_negotiation</module> évalue aussi la variable (non
seulement pour gzip, mais aussi pour tous les encodages autres que
"identity").</p>
</section>
<section id="no-gzip"><title>no-gzip</title>
- <p>Quand cette variable est définie, le filtre <code>DEFLATE</code> du
- module <module>mod_deflate</module> est désactivé, et
- <module>mod_negotiation</module> refusera de délivrer des ressources
- encodées.</p>
+ <p>Quand cette variable est définie, le filtre <code>DEFLATE</code> du
+ module <module>mod_deflate</module> est désactivé, et
+ <module>mod_negotiation</module> refusera de délivrer des ressources
+ encodées.</p>
</section>
<section id="no-cache"><title>no-cache</title>
- <p><em>Disponible dans les versions 2.2.12 et ultérieures d'Apache</em></p>
+ <p><em>Disponible dans les versions 2.2.12 et ultérieures d'Apache</em></p>
- <p>Lorsque cette variable est définie,
- <module>mod_cache</module> ne sauvegardera pas de réponse
- susceptible d'être mise en cache. Cette variable d'environnement
- n'a aucune incidence sur le fait qu'une réponse déjà enregistrée
- dans la cache soit utilisée ou non pour la requête courante.</p>
+ <p>Lorsque cette variable est définie,
+ <module>mod_cache</module> ne sauvegardera pas de réponse
+ susceptible d'être mise en cache. Cette variable d'environnement
+ n'a aucune incidence sur le fait qu'une réponse déjà enregistrée
+ dans la cache soit utilisée ou non pour la requête courante.</p>
</section>
<section id="nokeepalive">
<title>nokeepalive</title>
- <p>Quand cette variable est définie, la directive
- <directive module="core">KeepAlive</directive> est désactivée.</p>
+ <p>Quand cette variable est définie, la directive
+ <directive module="core">KeepAlive</directive> est désactivée.</p>
</section>
<module>mod_negotiation</module>. Si elle contient un symbole de
langage (tel que <code>en</code>, <code>ja</code>
ou <code>x-klingon</code>), <module>mod_negotiation</module> essaie de
- délivrer une variante dans ce langage. S'il n'existe pas de telle
+ délivrer une variante dans ce langage. S'il n'existe pas de telle
variante, le processus normal de
- <a href="content-negotiation.html">négociation</a> s'applique.</p>
+ <a href="content-negotiation.html">négociation</a> s'applique.</p>
</section>
<section id="redirect-carefully">
<title>redirect-carefully</title>
- <p>Cette variable force le serveur à être plus prudent lors de l'envoi
- d'une redirection au client. Elle est en général utilisée quand un
- client présente un problème connu avec les redirections. Elle fut
- implémentée à l'origine suite a un problème rencontré avec le logiciel
- WebFolders de Microsoft qui ne gère pas correctement les redirections
- vers des ressources de type répertoire via des méthodes DAV.</p>
+ <p>Cette variable force le serveur à être plus prudent lors de l'envoi
+ d'une redirection au client. Elle est en général utilisée quand un
+ client présente un problème connu avec les redirections. Elle fut
+ implémentée à l'origine suite a un problème rencontré avec le logiciel
+ WebFolders de Microsoft qui ne gère pas correctement les redirections
+ vers des ressources de type répertoire via des méthodes DAV.</p>
</section>
<section id="suppress-error-charset">
<title>suppress-error-charset</title>
- <p><em>Disponible dans les versions postérieures à 2.0.54</em></p>
+ <p><em>Disponible dans les versions postérieures à 2.0.54</em></p>
- <p>Quand Apache génère une redirection en réponse à une requête client,
- la réponse inclut un texte destiné à être affiché au cas où le client ne
+ <p>Quand Apache génère une redirection en réponse à une requête client,
+ la réponse inclut un texte destiné à être affiché au cas où le client ne
suivrait pas, ou ne pourrait pas suivre automatiquement la redirection.
- Habituellement, Apache marque ce texte en accord avec le jeu de caractères
- qu'il utilise, à savoir ISO-8859-1.</p>
- <p> Cependant, si la redirection fait référence à une page qui utilise un
- jeu de caractères différent, certaines versions de navigateurs obsolètes
- essaieront d'utiliser le jeu de caractères du texte de la redirection
- plutôt que celui de la page réelle.
- Ceci peut entraîner, par exemple, un rendu incorrect du Grec.</p>
- <p>Si cette variable d'environnement est définie, Apache omettra le jeu de
- caractères pour le texte de la redirection, et les navigateurs obsolètes
- précités utiliseront correctement celui de la page de destination.</p>
+ Habituellement, Apache marque ce texte en accord avec le jeu de caractères
+ qu'il utilise, à savoir ISO-8859-1.</p>
+ <p> Cependant, si la redirection fait référence à une page qui utilise un
+ jeu de caractères différent, certaines versions de navigateurs obsolètes
+ essaieront d'utiliser le jeu de caractères du texte de la redirection
+ plutôt que celui de la page réelle.
+ Ceci peut entraîner, par exemple, un rendu incorrect du Grec.</p>
+ <p>Si cette variable d'environnement est définie, Apache omettra le jeu de
+ caractères pour le texte de la redirection, et les navigateurs obsolètes
+ précités utiliseront correctement celui de la page de destination.</p>
<note type="warning">
- <title>Note concernant la sécurité</title>
-
- <p>L'envoi de pages d'erreur sans spécifier un jeu de caractères peut
- conduire à des attaques de type "cross-site-scripting" pour les
- navigateurs qui ne respectent pas la spécification HTTP/1.1 (MSIE) et
- tentent de déduire le jeu de caractères à partir du contenu. De tels
- navigateurs peuvent être facilement trompés et utiliser le jeu de
- caractères UTF-7 ; les contenus des données en entrée de type UTF-7
- (comme les URI de requête) ne seront alors plus protégés par les
- mécanismes d'échappement usuels conçus pour prévenir les attaques
+ <title>Note concernant la sécurité</title>
+
+ <p>L'envoi de pages d'erreur sans spécifier un jeu de caractères peut
+ conduire à des attaques de type "cross-site-scripting" pour les
+ navigateurs qui ne respectent pas la spécification HTTP/1.1 (MSIE) et
+ tentent de déduire le jeu de caractères à partir du contenu. De tels
+ navigateurs peuvent être facilement trompés et utiliser le jeu de
+ caractères UTF-7 ; les contenus des données en entrée de type UTF-7
+ (comme les URI de requête) ne seront alors plus protégés par les
+ mécanismes d'échappement usuels conçus pour prévenir les attaques
de type "cross-site-scripting".</p>
</note>
<p>Ces directives modifient le comportement protocolaire du module
<module>mod_proxy</module>. Voir la documentation sur
- <module>mod_proxy</module> et <module>mod_proxy_http</module> pour plus de détails.</p>
+ <module>mod_proxy</module> et <module>mod_proxy_http</module> pour plus de détails.</p>
</section>
</section>
<title>Exemples</title>
<section id="fixheader">
- <title>Transmission du contenu d'en-têtes non valides aux scripts
+ <title>Transmission du contenu d'en-têtes non valides aux scripts
CGI</title>
<p>Avec la version 2.4, Apache est plus strict avec la conversion
- des en-têtes HTTP en variables d'environnement dans
+ des en-têtes HTTP en variables d'environnement dans
<module>mod_cgi</module> et d'autres modules : dans les versions
- précédentes, tout caractère invalide dans les noms d'en-têtes
- était tout simplement remplacé par un caractère '_', ce qui
- pouvait exposer à des attaques de type cross-site-scripting via
- injection d'en-têtes (voir <a
+ précédentes, tout caractère invalide dans les noms d'en-têtes
+ était tout simplement remplacé par un caractère '_', ce qui
+ pouvait exposer à des attaques de type cross-site-scripting via
+ injection d'en-têtes (voir <a
href="http://events.ccc.de/congress/2007/Fahrplan/events/2212.en.html">Bogues
du Web inhabituelles</a>, planche 19/20).</p>
- <p>Si vous devez supporter un client qui envoie des en-têtes non
- conformes et si ceux-ci ne peuvent pas être corrigés, il existe
+ <p>Si vous devez supporter un client qui envoie des en-têtes non
+ conformes et si ceux-ci ne peuvent pas être corrigés, il existe
une solution de contournement simple mettant en jeu les modules
<module>mod_setenvif</module> et <module>mod_headers</module>,
- et permettant de prendre en compte ces en-têtes :</p>
+ et permettant de prendre en compte ces en-têtes :</p>
<highlight language="config">
-# L'exemple suivant montre comment prendre en compte un en-tête<br />
-# Accept_Encoding non conforme envoyé par un client.
+# L'exemple suivant montre comment prendre en compte un en-tête<br />
+# Accept_Encoding non conforme envoyé par un client.
#
SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1
RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding
</section>
<section id="misbehaving">
- <title>Modification du comportement protocolaire face à des clients
- réagissant de manière non conforme</title>
+ <title>Modification du comportement protocolaire face à des clients
+ réagissant de manière non conforme</title>
- <p>Les versions antérieures recommandaient l'ajout de ces lignes dans
- httpd.conf pour tenir compte de problèmes connus avec certains clients.
- Comme les clients concernés sont maintenant très peu utilisés, cet
- ajout n'est pratiquement plus nécessaire.</p>
+ <p>Les versions antérieures recommandaient l'ajout de ces lignes dans
+ httpd.conf pour tenir compte de problèmes connus avec certains clients.
+ Comme les clients concernés sont maintenant très peu utilisés, cet
+ ajout n'est pratiquement plus nécessaire.</p>
<highlight language="config">
#
# The following directives modify normal HTTP response behavior.
</section>
<section id="no-img-log">
- <title>Ne pas tracer les requêtes pour des images dans le fichier de
- trace des accès</title>
+ <title>Ne pas tracer les requêtes pour des images dans le fichier de
+ trace des accès</title>
- <p>Dans cet exemple, les requêtes pour des images n'apparaissent pas
- dans le fichier de trace des accès. Il peut être facilement adapté pour
- empêcher le traçage de répertoires particuliers, ou de requêtes
- en provenance de certains hôtes.</p>
+ <p>Dans cet exemple, les requêtes pour des images n'apparaissent pas
+ dans le fichier de trace des accès. Il peut être facilement adapté pour
+ empêcher le traçage de répertoires particuliers, ou de requêtes
+ en provenance de certains hôtes.</p>
<highlight language="config">
SetEnvIf Request_URI \.gif image-request
SetEnvIf Request_URI \.jpg image-request
SetEnvIf Request_URI \.png image-request
-CustomLog logs/access_log common env=!image-request
+CustomLog "logs/access_log" common env=!image-request
</highlight>
</section>
<section id="image-theft">
- <title>Prévention du "Vol d'image"</title>
+ <title>Prévention du "Vol d'image"</title>
- <p>Cet exemple montre comment empêcher les utilisateurs ne faisant pas
+ <p>Cet exemple montre comment empêcher les utilisateurs ne faisant pas
partie de votre serveur d'utiliser des images de votre serveur comme
images en ligne dans leurs pages. Cette configuration n'est pas
- recommandée, mais elle peut fonctionner dans des circonstances bien
- définies. Nous supposons que toutes vos images sont enregistrées dans
- un répertoire nommé <code>/web/images</code>.</p>
+ recommandée, mais elle peut fonctionner dans des circonstances bien
+ définies. Nous supposons que toutes vos images sont enregistrées dans
+ un répertoire nommé <code>/web/images</code>.</p>
<highlight language="config">
SetEnvIf Referer "^http://www\.example\.com/" local_referal
# Autorise les navigateurs qui n'envoient aucune information de Referer