env.html.fr revision fc32fe886201ffcf1ca557bdf7d34a7468ab3374
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>Apache et les variables d'environnement - Serveur Apache HTTP</title>
<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossaire</a> | <a href="/sitemap.html">Plan du site</a></p>
<p class="apache">Serveur Apache HTTP Version 2.3</p>
<div id="path">
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="./">Version 2.3</a></div><div id="page-content"><div id="preamble"><h1>Apache et les variables d'environnement</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="/en/env.html" hreflang="en" rel="alternate" title="English"> en </a> |
</div>
<p>Le serveur HTTP Apache propose un m�canisme de stockage d'informations
dans des variables appel�es <em>variables d'environnement</em>. 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
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>
</div>
<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>
</ul></div>
<div class="section">
<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
utilisant la directive
<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>[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
comme pr�conis� dans la
<a href="http://cgi-spec.golux.com/">sp�cification
sur les CGIs</a>.</p>
<h3><a name="caveats" id="caveats">Quelques mises en garde</a></h3>
<ul>
<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>
</ul>
<div class="section">
<h2><a name="using" id="using">Utilisation 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_authz_host.html">mod_authz_host</a></code></li><li><code class="module"><a href="/mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="/mod/mod_ext_filter.html">mod_ext_filter</a></code></li><li><code class="module"><a href="/mod/mod_headers.html">mod_headers</a></code></li><li><code class="module"><a href="/mod/mod_include.html">mod_include</a></code></li><li><code class="module"><a href="/mod/mod_log_config.html">mod_log_config</a></code></li><li><code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code></li></ul></td><td><ul><li><code class="directive"><a href="/mod/mod_authz_host.html#allow">Allow</a></code></li><li><code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code></li><li><code class="directive"><a href="/mod/mod_authz_host.html#deny">Deny</a></code></li><li><code class="directive"><a href="/mod/mod_ext_filter.html#extfilterdefine">ExtFilterDefine</a></code></li><li><code class="directive"><a href="/mod/mod_headers.html#header">Header</a></code></li><li><code class="directive"><a href="/mod/mod_log_config.html#logformat">LogFormat</a></code></li><li><code class="directive"><a href="/mod/mod_rewrite.html#rewritecond">RewriteCond</a></code></li><li><code class="directive"><a href="/mod/mod_rewrite.html#rewriterule">RewriteRule</a></code></li></ul></td></tr></table>
<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
d�tails, se r�f�rer au
<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>,
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.
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
<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
(User-Agent).
</p>
<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
directive <code class="directive"><a href="/mod/mod_log_config.html#logformat">LogFormat</a></code>.
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>
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 class="section">
<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
utilis�es, par exemple.</p>
<h3><a name="downgrade" id="downgrade">downgrade-1.0</a></h3>
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>
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
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
utiliser des fichiers compress�s statiquement,
<code class="module"><a href="/mod/mod_negotiation.html">mod_negotiation</a></code> �value aussi la variable (non
seulement pour gzip, mais aussi pour tous les encodages autres que
"identity").</p>
<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
encod�es.</p>
<h3><a name="no-cache" id="no-cache">no-cache</a></h3>
<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
<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>
<div class="warning">
<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
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>
</div>
<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> et <code class="module"><a href="/mod/mod_proxy_http.html">mod_proxy_http</a></code> pour plus de d�tails.</p>
<div class="section">
<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
# 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
#
# basic 1.1 response.
#
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
trace des acc�s</a></h3>
<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 />
CustomLog logs/access_log common env=!image-request
</code></p></div>
<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
<div class="example"><p><code>
SetEnvIf Referer "^http://www\.example\.com/" local_referal
# Allow browsers that do not send Referer info
SetEnvIf Referer "^$" local_referal
<span class="indent">
Order Deny,Allow<br />
Deny from all<br />
Allow from env=local_referal
</span>
</Directory>
</code></p></div>
<p>Pour plus d'informations sur cette technique, voir le tutoriel sur
ServerWatch
"<a href="http://www.serverwatch.com/tutorials/article.php/1132731">Keeping Your Images from Adorning Other Sites</a>".</p>
</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="/en/env.html" hreflang="en" rel="alternate" title="English"> en </a> |
</div><div id="footer">
<p class="apache">Copyright 2009 The Apache Software Foundation.<br />Authoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossaire</a> | <a href="/sitemap.html">Plan du site</a></p></div>
</body></html>