278N/A<?
xml version="1.0" encoding="ISO-8859-1"?>
278N/A XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 278N/A This file is generated from xml source: DO NOT EDIT 278N/A XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 278N/A<
title>Apache et les variables d'environnement - Serveur Apache HTTP</
title>
278N/A<
body id="manual-page"><
div id="page-header">
278N/A<
p class="apache">Serveur Apache HTTP Version 2.3</
p>
278N/A<
div class="up"><
a href="./"><
img title="<-" alt="<-" src="/images/left.gif" /></
a></
div>
5680N/A<
p><
span>Langues Disponibles: </
span><
a href="/en/env.html" hreflang="en" rel="alternate" title="English"> en </
a> |
278N/A<
a href="/ja/env.html" hreflang="ja" rel="alternate" title="Japanese"> ja </
a> |
278N/A<
a href="/ko/env.html" hreflang="ko" rel="alternate" title="Korean"> ko </
a> |
278N/A<
a href="/tr/env.html" hreflang="tr" rel="alternate" title="T�rk�e"> tr </
a></
p>
278N/A <
p>Le serveur HTTP Apache propose un m�canisme de stockage d'informations
278N/A dans des variables appel�es <
em>variables d'environnement</
em>. Ces
278N/A informations peuvent servir � contr�ler diverses op�rations comme
278N/A l'enregistrement des traces ou le contr�le d'acc�s. On utilise aussi ces
278N/A variables dans le m�canisme de communication avec les programmes externes
278N/A comme les scripts CGI. Ce document pr�sente diff�rentes m�thodes pour
278N/A manipuler et utiliser ces variables.</
p>
278N/A <
p>Bien que ces variables soient r�f�renc�es comme <
em>variables
278N/A d'environnement</
em>, il ne faut pas les confondre avec les variables
278N/A d'environnement contr�l�es par le syst�me d'exploitation sous-jacent.
278N/A En fait, ces variables sont stock�es et manipul�es dans une structure
278N/A interne � Apache. Elles ne deviennent de v�ritables variables
278N/A d'environnement du syst�me d'exploitation que lorsqu'elles sont mises � la
278N/A disposition de scripts CGI et de scripts inclus c�t� serveur (SSI). Si vous
278N/A souhaitez manipuler l'environnement du syst�me d'exploitation sous lequel
278N/A le serveur s'ex�cute, vous devez utiliser les m�canismes standards de
278N/A manipulation de l'environnement fournis par l'interpr�teur de commandes
278N/A (shell) de votre syst�me d'exploitation.</
p>
<
div id="quickview"><
ul id="toc"><
li><
img alt="" src="/images/down.gif" /> <
a href="#setting">D�finition des variables d'environnement</
a></
li>
<
li><
img alt="" src="/images/down.gif" /> <
a href="#using">Utilisation des variables d'environnement</
a></
li>
<
li><
img alt="" src="/images/down.gif" /> <
a href="#special">Variables d'environnement � usage sp�cial</
a></
li>
<
li><
img alt="" src="/images/down.gif" /> <
a href="#examples">Exemples</
a></
li>
<
div class="top"><
a href="#page-header"><
img alt="top" src="/images/up.gif" /></
a></
div>
<
h2><
a name="setting" id="setting">D�finition des variables d'environnement</
a></
h2>
<
table class="related"><
tr><
th>Modules Apparent�s</
th><
th>Directives Apparent�es</
th></
tr><
tr><
td><
ul><
li><
code class="module"><
a href="/mod/mod_env.html">mod_env</
a></
code></
li><
li><
code class="module"><
a href="/mod/mod_rewrite.html">mod_rewrite</
a></
code></
li><
li><
code class="module"><
a href="/mod/mod_setenvif.html">mod_setenvif</
a></
code></
li><
li><
code class="module"><
a href="/mod/mod_unique_id.html">mod_unique_id</
a></
code></
li></
ul></
td><
td><
ul><
li><
code class="directive"><
a href="/mod/mod_setenvif.html#browsermatch">BrowserMatch</
a></
code></
li><
li><
code class="directive"><
a href="/mod/mod_setenvif.html#browsermatchnocase">BrowserMatchNoCase</
a></
code></
li><
li><
code class="directive"><
a href="/mod/mod_env.html#passenv">PassEnv</
a></
code></
li><
li><
code class="directive"><
a href="/mod/mod_rewrite.html#rewriterule">RewriteRule</
a></
code></
li><
li><
code class="directive"><
a href="/mod/mod_env.html#setenv">SetEnv</
a></
code></
li><
li><
code class="directive"><
a href="/mod/mod_setenvif.html#setenvif">SetEnvIf</
a></
code></
li><
li><
code class="directive"><
a href="/mod/mod_setenvif.html#setenvifnocase">SetEnvIfNoCase</
a></
code></
li><
li><
code class="directive"><
a href="/mod/mod_env.html#unsetenv">UnsetEnv</
a></
code></
li></
ul></
td></
tr></
table>
<
h3><
a name="basic-manipulation" id="basic-manipulation">Manipulations de base de l'environnement</
a></
h3>
<
p>La m�thode la plus �l�mentaire pour d�finir une variable
d'environnement au niveau d'Apache consiste � utiliser la directive
inconditionnelle <
code class="directive"><
a href="/mod/mod_env.html#setenv">SetEnv</
a></
code>. Les variables peuvent aussi �tre transmises depuis
l'environnement du shell � partir duquel le serveur a �t� d�marr� en
<
code class="directive"><
a href="/mod/mod_env.html#passenv">PassEnv</
a></
code>.</
p>
<
h3><
a name="conditional" id="conditional">D�finitions conditionnelles en fonction des requ�tes</
a></
h3>
<
p>Pour plus de souplesse, les directives fournies par le module
<
code class="module"><
a href="/mod/mod_setenvif.html">mod_setenvif</
a></
code> 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
<
code class="directive"><
a href="/mod/mod_rewrite.html#rewriterule">RewriteRule</
a></
code> du module
<
code class="module"><
a href="/mod/mod_rewrite.html">mod_rewrite</
a></
code> qui utilise l'option
<
code>[E=...]</
code> pour d�finir
les variables d'environnement apporte encore plus de souplesse.</
p>
<
h3><
a name="unique-identifiers" id="unique-identifiers">Identifiants uniques</
a></
h3>
<
p>Finalement, le module <
code class="module"><
a href="/mod/mod_unique_id.html">mod_unique_id</
a></
code> 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>
<
h3><
a name="standard-cgi" id="standard-cgi">Variables CGI standards</
a></
h3>
<
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
<
h3><
a name="caveats" id="caveats">Quelques mises en garde</
a></
h3>
<
li>Les directives de manipulation de l'environnement ne permettent
pas de supplanter ou modifier les variables CGI standards.</
li>
<
li>Lorsqu'on utilise <
code class="program"><
a href="/programs/suexec.html">suexec</
a></
code> 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>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
transmis aux scripts CGI et aux pages SSI.</
li>
<
li>La directive <
code class="directive"><
a href="/mod/mod_env.html#setenv">SetEnv</
a></
code> s'ex�cute assez tard au
cours du traitement de la requ�te, ce qui signifie que des
directives telles que <
code class="directive"><
a href="/mod/mod_setenvif.html#setenvif">SetEnvIf</
a></
code> et <
code class="directive"><
a href="/mod/mod_rewrite.html#rewritecond">RewriteCond</
a></
code> ne verront pas
les variables qu'elle aura d�finies.</
li>
</
div><
div class="top"><
a href="#page-header"><
img alt="top" src="/images/up.gif" /></
a></
div>
<
h2><
a name="using" id="using">Utilisation des variables d'environnement</
a></
h2>
<
h3><
a name="cgi-scripts" id="cgi-scripts">Scripts CGI</
a></
h3>
<
p>La communication d'informations aux scripts CGI constitue une des
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
<
h3><
a name="ssi-pages" id="ssi-pages">Pages SSI</
a></
h3>
<
p>Les documents inclus c�t� serveur (SSI) trait�s par le filtre
<
code>INCLUDES</
code> du module <
code class="module"><
a href="/mod/mod_include.html">mod_include</
a></
code>,
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
comme indiqu� plus haut. Pour plus de d�tails, se r�f�rer au
<
h3><
a name="access-control" id="access-control">Contr�le d'acc�s</
a></
h3>
<
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>.
En association avec la directive
<
code class="directive"><
a href="/mod/mod_setenvif.html#setenvif">SetEnvIf</
a></
code>, 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
<
h3><
a name="logging" id="logging">Enregistrement conditionnel des traces</
a></
h3>
<
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
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
association avec la directive <
code class="directive"><
a href="/mod/mod_setenvif.html#setenvif">SetEnvIf</
a></
code>, 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>
<
h3><
a name="response-headers" id="response-headers">En-t�tes de r�ponse conditionnels</
a></
h3>
<
p>La directive <
code class="directive"><
a href="/mod/mod_headers.html#header">Header</
a></
code>
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>
<
h3><
a name="external-filter" id="external-filter">Activation de filtres externes</
a></
h3>
<
p>Les filtres externes configur�s par le module
<
code class="module"><
a href="/mod/mod_ext_filter.html">mod_ext_filter</
a></
code> � l'aide de la directive <
code class="directive"><
a href="/mod/mod_ext_filter.html#extfilterdefine">ExtFilterDefine</
a></
code> 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>
<
h3><
a name="url-rewriting" id="url-rewriting">R��criture d'URL</
a></
h3>
<
p>La forme <
code>%{ENV:<
em>variable</
em>}</
code> de
<
em>TestString</
em> dans la
directive <
code class="directive"><
a href="/mod/mod_rewrite.html#rewritecond">RewriteCond</
a></
code>
permet au moteur de r��criture du module
d�cisions conditionn�es par des variables d'environnement.
Notez que les variables accessibles dans
<
code>ENV:</
code> ne sont pas de v�ritables variables
d'environnement. Ce sont plut�t des variables sp�cifiques �
qui ne sont pas accessibles pour les autres modules.</
p>
</
div><
div class="top"><
a href="#page-header"><
img alt="top" src="/images/up.gif" /></
a></
div>
<
h2><
a name="special" id="special">Variables d'environnement � usage sp�cial</
a></
h2>
<
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
<
code class="directive"><
a href="/mod/mod_setenvif.html#browsermatch">BrowserMatch</
a></
code>, bien que les
directives <
code class="directive"><
a href="/mod/mod_env.html#setenv">SetEnv</
a></
code> et
<
code class="directive"><
a href="/mod/mod_env.html#passenv">PassEnv</
a></
code> puissent aussi �tre
utilis�es, par exemple.</
p>
<
h3><
a name="downgrade" id="downgrade">downgrade-1.0</
a></
h3>
<
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>
<
h3><
a name="force-gzip" id="force-gzip">force-gzip</
a></
h3>
<
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>
<
h3><
a name="force-no-vary" id="force-no-vary">force-no-vary</
a></
h3>
<
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>
<
h3><
a name="force-response" id="force-response">force-response-1.0</
a></
h3>
<
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>Positionn�e � "1", cette variable d�sactive le filtre en sortie
<
code>DEFLATE</
code> fourni par le module <
code class="module"><
a href="/mod/mod_deflate.html">mod_deflate</
a></
code> pour les
types de contenu autres que <
code>
text/
html</
code>. Si vous pr�f�rez
utiliser des fichiers compress�s statiquement,
seulement pour gzip, mais aussi pour tous les encodages autres que
<
h3><
a name="no-gzip" id="no-gzip">no-gzip</
a></
h3>
<
p>Quand cette variable est d�finie, le filtre <
code>DEFLATE</
code> du
module <
code class="module"><
a href="/mod/mod_deflate.html">mod_deflate</
a></
code> est d�sactiv�, et
<
code class="module"><
a href="/mod/mod_negotiation.html">mod_negotiation</
a></
code> refusera de d�livrer des ressources
<
h3><
a name="no-cache" id="no-cache">no-cache</
a></
h3>
<
p><
em>Disponible dans les versions d'Apache ult� �
<
p>Lorsque cette variable est d�finie,
<
code class="module"><
a href="/mod/mod_cache.html">mod_cache</
a></
code> 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>
<
h3><
a name="nokeepalive" id="nokeepalive">nokeepalive</
a></
h3>
<
p>Quand cette variable est d�finie, la directive
<
code class="directive"><
a href="/mod/core.html#keepalive">KeepAlive</
a></
code> est d�sactiv�e.</
p>
<
h3><
a name="prefer-language" id="prefer-language">prefer-language</
a></
h3>
<
p>Cette variable modifie le comportement du module
<
code class="module"><
a href="/mod/mod_negotiation.html">mod_negotiation</
a></
code>. Si elle contient un symbole de
langage (tel que <
code>en</
code>, <
code>ja</
code>
ou <
code>x-klingon</
code>), <
code class="module"><
a href="/mod/mod_negotiation.html">mod_negotiation</
a></
code> essaie de
d�livrer une variante dans ce langage. S'il n'existe pas de telle
variante, le processus normal de
<
h3><
a name="redirect-carefully" id="redirect-carefully">redirect-carefully</
a></
h3>
<
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>
<
h3><
a name="suppress-error-charset" id="suppress-error-charset">suppress-error-charset</
a></
h3>
<
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
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>
<
h3>Note concernant la s�curit�</
h3>
<
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>
<
h3><
a name="proxy" id="proxy">force-proxy-request-1.0, proxy-nokeepalive, proxy-sendchunked,
proxy-sendcl, proxy-chain-auth, proxy-interim-response, proxy-initial-not-pooled</
a></
h3>
<
p>Ces directives modifient le comportement protocolaire du module
<
code class="module"><
a href="/mod/mod_proxy.html">mod_proxy</
a></
code>. Voir la documentation sur
</
div><
div class="top"><
a href="#page-header"><
img alt="top" src="/images/up.gif" /></
a></
div>
<
h2><
a name="examples" id="examples">Exemples</
a></
h2>
<
h3><
a name="misbehaving" id="misbehaving">Modification du comportement protocolaire face � des clients
r�agissant de mani�re non conforme</
a></
h3>
<
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>
<
div class="example"><
pre>
# The following directives modify normal HTTP response behavior.
# The first directive disables keepalive for Netscape
2.x and browsers that
# spoof it. There are known problems with these browser implementations.
# The second directive is for Microsoft Internet Explorer 4.0b2
# which has a broken
HTTP/
1.1 implementation and does not properly
# support keepalive when it is used on 301 or 302 (redirect) responses.
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
# The following directive disables
HTTP/
1.1 responses to browsers which
# are in violation of the
HTTP/
1.0 spec by not being able to grok a
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0</
pre></
div>
<
h3><
a name="no-img-log" id="no-img-log">Ne pas tracer les requ�tes pour des images dans le fichier de
<
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>
<
div class="example"><
p><
code>
SetEnvIf Request_URI \.gif image-request<
br />
SetEnvIf Request_URI \.jpg image-request<
br />
SetEnvIf Request_URI \.png image-request<
br />
<
h3><
a name="image-theft" id="image-theft">Pr�vention du "Vol d'image"</
a></
h3>
<
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>
<
div class="example"><
p><
code>
# Allow browsers that do not send Referer info
SetEnvIf Referer "^$" local_referal
Allow from env=local_referal
<
p>Pour plus d'informations sur cette technique, voir le tutoriel sur
<
p><
span>Langues Disponibles: </
span><
a href="/en/env.html" hreflang="en" rel="alternate" title="English"> en </
a> |
<
a href="/fr/env.html" title="Fran�ais"> fr </
a> |
<
a href="/ja/env.html" hreflang="ja" rel="alternate" title="Japanese"> ja </
a> |
<
a href="/ko/env.html" hreflang="ko" rel="alternate" title="Korean"> ko </
a> |
<
a href="/tr/env.html" hreflang="tr" rel="alternate" title="T�rk�e"> tr </
a></
p>