<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="fr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Apache httpd et les variables d'environnement - Serveur HTTP Apache Version 2.4</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">
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="./style/css/prettify.css">
<script src="./style/scripts/prettify.min.js">
</script>

<link href="./images/favicon.png" rel="shortcut icon"></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="./images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="https://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.4</a></div><div id="page-content"><div id="preamble"><h1>Apache httpd et les variables d'environnement</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="./en/env.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/env.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/env.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/env.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/env.html" hreflang="tr" rel="alternate" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div>
<div class="outofdate">Cette traduction peut &ecirc;tre p&eacute;rim&eacute;e. V&eacute;rifiez la version
            anglaise pour les changements r&eacute;cents.</div>

     <p>Deux types de variables d'environnement affectent le serveur
     HTTP Apache.</p>

    <p>Le premier type correspond aux variables d'environnement
    contr&ocirc;l&eacute;es par le syst&egrave;me d'exploitation sous-jacent et d&eacute;finies
    avant le d&eacute;marrage du serveur. Leurs valeurs peuvent &ecirc;tre utilis&eacute;es
    directement dans les fichiers de configuration, et peuvent
    &eacute;ventuellement &ecirc;tre transmises aux scripts CGI et SSI &agrave; l'aide de la
    directive PassEnv.</p>

    <p>Le second type correspond aux variables nomm&eacute;es appel&eacute;es aussi
    <em>variables d'environnement</em> dans lesquelles le serveur HTTP
    Apache stocke des informations via un m&eacute;canisme sp&eacute;cial. Ces
    informations peuvent servir &agrave; contr&ocirc;ler diverses op&eacute;rations comme
    l'enregistrement des traces ou le contr&ocirc;le d'acc&egrave;s. On utilise aussi ces
    variables dans le m&eacute;canisme de communication avec les programmes externes
    comme les scripts CGI. Ce document pr&eacute;sente diff&eacute;rentes m&eacute;thodes pour
    manipuler et utiliser ces variables.</p>

    <p>Bien que ces variables soient r&eacute;f&eacute;renc&eacute;es comme <em>variables
    d'environnement</em>, il ne faut pas les confondre avec les variables
    d'environnement contr&ocirc;l&eacute;es par le syst&egrave;me d'exploitation sous-jacent.
    En fait, ces variables sont stock&eacute;es et manipul&eacute;es dans une structure
    interne &agrave; Apache httpd. Elles ne deviennent de v&eacute;ritables variables
    d'environnement du syst&egrave;me d'exploitation que lorsqu'elles sont mises &agrave; la
    disposition de scripts CGI et de scripts inclus c&ocirc;t&eacute; serveur (SSI). Si vous
    souhaitez manipuler l'environnement du syst&egrave;me d'exploitation sous lequel
    le serveur s'ex&eacute;cute, vous devez utiliser les m&eacute;canismes standards de
    manipulation de l'environnement fournis par l'interpr&eacute;teur de commandes
    (shell) de votre syst&egrave;me d'exploitation.</p>
  </div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif"> <a href="#setting">D&eacute;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="#cgi">Variables d'environnement de CGI</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#special">Variables d'environnement &agrave; usage sp&eacute;cial</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#redirect-vars">Variables REDIRECT_</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#examples">Exemples</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="setting">D&eacute;finition des variables d'environnement <a title="Lien permanent" href="#setting" class="permalink">&para;</a></h2>
    
    <table class="related"><tr><th>Modules Apparent&eacute;s</th><th>Directives Apparent&eacute;es</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code></li><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 id="basic-manipulation">Manipulations de base de l'environnement</h3>
        

        <p>La m&eacute;thode la plus &eacute;l&eacute;mentaire pour d&eacute;finir une variable
	d'environnement au niveau d'Apache httpd consiste &agrave; utiliser la directive
	inconditionnelle <code class="directive"><a href="./mod/mod_env.html#setenv">SetEnv</a></code>. Les variables peuvent aussi &ecirc;tre transmises depuis
	l'environnement du shell &agrave; partir duquel le serveur a &eacute;t&eacute; d&eacute;marr&eacute; en
	utilisant la directive
        <code class="directive"><a href="./mod/mod_env.html#passenv">PassEnv</a></code>.</p>

    
    <h3 id="conditional">D&eacute;finitions conditionnelles en fonction des requ&ecirc;tes</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&eacute;finir les
	variables d'environnement en tenant compte des caract&eacute;ristiques
	de chaque requ&ecirc;te. Par exemple, une
	variable pourrait n'&ecirc;tre d&eacute;finie que lorsqu'un navigateur sp&eacute;cifique
	(User-Agent) a g&eacute;n&eacute;r&eacute; la requ&ecirc;te, ou seulement quand un en-t&ecirc;te
	Referer particulier est pr&eacute;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&eacute;finir
	les variables d'environnement apporte encore plus de souplesse.</p>

    
    <h3 id="unique-identifiers">Identifiants uniques</h3>
        

        <p>Finalement, le module <code class="module"><a href="./mod/mod_unique_id.html">mod_unique_id</a></code> d&eacute;finit la variable
	d'environnement <code>UNIQUE_ID</code> pour chaque requ&ecirc;te &agrave; une valeur
	qui est garantie unique parmi &laquo;&nbsp;toutes&nbsp;&raquo; les requ&ecirc;tes 
	sous des conditions tr&egrave;s sp&eacute;cifiques.</p>

    
    <h3 id="standard-cgi">Variables CGI standards</h3>
        

        <p>En plus de l'ensemble des variables d'environnement internes &agrave; la
	configuration d'Apache httpd et de celles transmises depuis le shell,
	les scripts CGI	et les pages SSI
	se voient affect&eacute;s un ensemble de variables
	d'environnement contenant des m&eacute;ta-informations &agrave; propos de la requ&ecirc;te
	comme pr&eacute;conis&eacute; dans la sp&eacute;cification
	sur les CGIs (<a href="https://www.rfc-editor.org/rfc/rfc3875">RFC 3875</a>).</p>

    
    <h3 id="caveats">Quelques mises en garde</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&eacute;cuter des
	  scripts CGI, l'environnement est nettoy&eacute; et r&eacute;duit &agrave; un ensemble de
	  variables <em>s&ucirc;res</em> avant l'ex&eacute;cution du script. La liste des
	  variables <em>s&ucirc;res</em> est d&eacute;finie &agrave; la compilation dans
          <code>suexec.c</code>.</li>

          <li>Pour des raisons de portabilit&eacute;, les noms des variables
	  d'environnement ne peuvent contenir que des lettres, des chiffres et
	  le caract&egrave;re &laquo;&nbsp;soulign&eacute;&nbsp;&raquo;. En outre, le premier caract&egrave;re ne doit pas
	  &ecirc;tre un chiffre. Les caract&egrave;res qui ne satisfont pas &agrave; ces conditions
	  seront remplac&eacute;s par un caract&egrave;re &laquo;&nbsp;soulign&eacute;&nbsp;&raquo; quand ils seront
	  transmis aux scripts CGI et aux pages SSI.</li>

	  <li>Les contenus d'en-t&ecirc;tes HTTP transmis aux scripts de type
	  CGI ou autre &agrave; l'aide de variables d'environnement constituent un
	  cas particulier (voir plus loin). Leur nom est converti en
	  majuscules et seuls les tirets sont remplac&eacute;s par des
	  caract&egrave;res '_' (&laquo;&nbsp;soulign&eacute;&nbsp;&raquo;) ; si le format du nom de l'en-t&ecirc;te
	  n'est pas valide, celui-ci est ignor&eacute;. Voir <a href="#fixheader">plus loin</a> pour une solution de
	  contournement du probl&egrave;me.</li>

          <li>La directive <code class="directive"><a href="./mod/mod_env.html#setenv">SetEnv</a></code> s'ex&eacute;cute assez tard au
	  cours du traitement de la requ&ecirc;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&eacute;finies.</li>

	  <li>Lorsque le serveur cherche un chemin via une <a class="glossarylink" href="./glossary.html#subrequest" title="voir glossaire">sous-requ&ecirc;te</a> interne (par exemple la
   recherche d'un <code class="directive"><a href="./mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>), ou lorsqu'il g&eacute;n&egrave;re un
   listing du contenu d'un r&eacute;pertoire &agrave; l'aide du module
   <code class="module"><a href="./mod/mod_autoindex.html">mod_autoindex</a></code>, la sous-requ&ecirc;te n'h&eacute;rite pas des
   variables d'environnement sp&eacute;cifiques &agrave; la requ&ecirc;te. En outre, &agrave; cause
   des phases de l'API auxquelles <code class="module"><a href="./mod/mod_setenvif.html">mod_setenvif</a></code> prend
   part, les directives <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> ne sont pas &eacute;valu&eacute;es
   s&eacute;par&eacute;ment dans la sous-requ&ecirc;te.</li>
        </ul>
    
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="using">Utilisation des variables d'environnement <a title="Lien permanent" href="#using" class="permalink">&para;</a></h2>
    

    <table class="related"><tr><th>Modules Apparent&eacute;s</th><th>Directives Apparent&eacute;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_core.html#require">Require</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_access_compat.html#allow">Allow</a></code></li><li><code class="directive"><a href="./mod/mod_access_compat.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 id="cgi-scripts">Scripts CGI</h3>
        

        <p>La communication d'informations aux scripts CGI constitue une des
	principales utilisations des variables d'environnement. Comme indiqu&eacute;
	plus haut, l'environnement transmis aux scripts CGI comprend des
	m&eacute;ta-informations standards &agrave; propos de la requ&ecirc;te, en plus des
	variables d&eacute;finies dans la configuration d'Apache httpd. Pour plus de
	d&eacute;tails, se r&eacute;f&eacute;rer au
        <a href="howto/cgi.html">tutoriel CGI</a>.</p>

    
    <h3 id="ssi-pages">Pages SSI</h3>
        

        <p>Les documents inclus c&ocirc;t&eacute; serveur (SSI) trait&eacute;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 &agrave; l'aide de l'&eacute;l&eacute;ment <code>echo</code>,
	et peuvent utiliser des variables d'environnement dans les &eacute;l&eacute;ments
	de contr&ocirc;le de flux pour rendre certaines parties d'une page
        conditionnelles en fonction des caract&eacute;ristiques de la requ&ecirc;te.
	Apache httpd fournit aussi les variables d'environnement CGI standards
	aux pages SSI
	comme indiqu&eacute; plus haut. Pour plus de d&eacute;tails, se r&eacute;f&eacute;rer au
	<a href="howto/ssi.html">tutoriel SSI</a>.</p>

    
    <h3 id="access-control">Contr&ocirc;le d'acc&egrave;s</h3>
        

        <p>L'acc&egrave;s au serveur peut &ecirc;tre contr&ocirc;l&eacute; en fonction de
	variables d'environnement &agrave; l'aide des directives
	<code>Require env</code> et <code>Require not env</code>.
	En association avec la directive
        <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>, cela conf&egrave;re une
	grande souplesse au contr&ocirc;le d'acc&egrave;s au serveur en fonction des
	caract&eacute;ristiques du client. Par exemple, vous pouvez utiliser ces
        directives pour interdire l'acc&egrave;s depuis un navigateur particulier
	(User-Agent).
        </p>

    
    <h3 id="logging">Enregistrement conditionnel des traces</h3>
        

        <p>Les variables d'environnement peuvent &ecirc;tre enregistr&eacute;es dans le
	fichier de log des acc&egrave;s &agrave; 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&eacute;cision de tracer ou non les requ&ecirc;tes peut &ecirc;tre prise
	en fonction de l'&eacute;tat de variables d'environnement en utilisant la
	forme conditionnelle de la directive
        <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>. En
	association avec la directive <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>, cela conf&egrave;re une grande souplesse au contr&ocirc;le
	du tra&ccedil;age des requ&ecirc;tes. Par exemple, vous pouvez choisir de ne pas
	tracer les requ&ecirc;tes pour des noms de fichiers se terminant par
	<code>gif</code>, ou encore de ne tracer que les requ&ecirc;tes des clients
	n'appartenant pas &agrave; votre sous-r&eacute;seau.</p>

    
    <h3 id="response-headers">En-t&ecirc;tes de r&eacute;ponse conditionnels</h3>
        

        <p>La directive <code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code>
        peut se baser sur la pr&eacute;sence ou l'absence d'une variable
	d'environnement pour d&eacute;cider si un certain en-t&ecirc;te HTTP sera plac&eacute;
	dans la r&eacute;ponse au client. Cela permet, par exemple, de n'envoyer un
	certain en-t&ecirc;te de r&eacute;ponse que si un en-t&ecirc;te correspondant est pr&eacute;sent
	dans la requ&ecirc;te du client.</p>

    

    <h3 id="external-filter">Activation de filtres externes</h3>
        

        <p>Les filtres externes configur&eacute;s par le module
	<code class="module"><a href="./mod/mod_ext_filter.html">mod_ext_filter</a></code> &agrave; l'aide de la directive <code class="directive"><a href="./mod/mod_ext_filter.html#extfilterdefine">ExtFilterDefine</a></code> peuvent &ecirc;tre
	activ&eacute;s de mani&egrave;re conditionnelle en fonction d'une variable
	d'environnement &agrave; l'aide des options
        <code>disableenv=</code> et <code>enableenv=</code>.</p>
    

    <h3 id="url-rewriting">R&eacute;&eacute;criture d'URL</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&eacute;&eacute;criture du module
	<code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> de prendre des
	d&eacute;cisions conditionn&eacute;es par des variables d'environnement.
        Notez que les variables accessibles dans
	<code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> sans le pr&eacute;fixe
        <code>ENV:</code> ne sont pas de v&eacute;ritables variables
	d'environnement. Ce sont plut&ocirc;t des variables sp&eacute;cifiques &agrave;
	<code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code>
        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>
<div class="section">
<h2 id="cgi">Variables d'environnement de CGI <a title="Lien permanent" href="#cgi" class="permalink">&para;</a></h2>
    

    <p>La sp&eacute;cification sur les CGIs (<a href="https://www.rfc-editor.org/rfc/rfc3875#section-4.1">RFC 3875</a>) d&eacute;finit un
    certain nombre de variables d'environnement qui s'ajoutent &agrave; celles d&eacute;finies
    par la sp&eacute;cification de HTTP. Elles ont &eacute;t&eacute; plus largement adopt&eacute;es et
    constituent une m&eacute;thode standard pour transmettre des informations entre le
    navigateur et le serveur, et entre les processus au sein du serveur. Nous en
    d&eacute;crivons quelques unes ici&nbsp;; consultez la sp&eacute;cification de CGI pour
    plus de d&eacute;tails.</p>

    <h3 id="query-string">QUERY_STRING</h3>
        
        <p>La variable <code>QUERY_STRING</code> est d&eacute;finie avec tout ce
	qui appara&icirc;t apr&egrave;s un point d'interrogation &agrave; la fin de l'URL d'une
	requ&ecirc;te. Elle permet de transmettre des informations au serveur et peut
	&ecirc;tre divis&eacute;e en paires cl&eacute;/valeur. L'encodage de la cha&icirc;ne doit &ecirc;tre de
	type URL.</p>

        <div class="example"><p><code>
        https://example.com/path/resource.php?key1=value1&amp;key2=another%20value
        </code></p></div>

        <p>Dans cet exemple, la variable <code>QUERY_STRING</code> est d&eacute;finie
	avec tout ce qui suit le point d'interrogation, et l'application
	r&eacute;ceptrice (une application CGI ou un script PHP, par exemple) est
	charg&eacute;e d'en extraire les paires cl&eacute;/valeur.</p>
        
    

    <h3 id="path-info">PATH_INFO</h3>
        

        <p>La variable <code>PATH_INFO</code> est d&eacute;finie avec toute valeur qui
	appara&icirc;t apr&egrave;s une ressource correspondante &agrave; la fin de l'URL,
	<code>QUERY_STRING</code> non comprise. Tout para&icirc;t plus clair avec un
	exemple&nbsp;:</p>

        <div class="example"><p><code>
        https://example.com/resource.php/additional/data?key1=value1
        </code></p></div>

        <p>Dans cet exemple, <code>PATH_INFO</code> est d&eacute;finie avec la cha&icirc;ne
	<code>/additional/data</code> et <code>QUERY_STRING</code> avec la
	cha&icirc;ne <code>key1=value1</code>.</p>
    

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="special">Variables d'environnement &agrave; usage sp&eacute;cial <a title="Lien permanent" href="#special" class="permalink">&para;</a></h2>
    

        <p>Des probl&egrave;mes d'interop&eacute;rabilit&eacute; ont conduit &agrave; l'introduction de
	m&eacute;canismes permettant de modifier le comportement d'Apache httpd lorsqu'il
	dialogue avec certains clients. Afin de rendre ces m&eacute;canismes aussi
	souples que possible, ils sont invoqu&eacute;s en d&eacute;finissant des variables
	d'environnement, en g&eacute;n&eacute;ral &agrave; 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 &ecirc;tre
	utilis&eacute;es, par exemple.</p>

    <h3 id="downgrade">downgrade-1.0</h3>
        

        <p>Cela force le traitement d'une requ&ecirc;te comme une requ&ecirc;te HTTP/1.0
        m&ecirc;me si elle a &eacute;t&eacute; r&eacute;dig&eacute;e dans un langage plus r&eacute;cent.</p>

    
    <h3 id="force-gzip">force-gzip</h3>
        
          <p>Si le filtre <code>DEFLATE</code> est activ&eacute;, cette variable
	  d'environnement ignorera les r&eacute;glages accept-encoding de votre
	  navigateur et enverra une sortie compress&eacute;e inconditionnellement.</p>
    
    <h3 id="force-no-vary">force-no-vary</h3>
        

        <p>Cette variable entra&icirc;ne la suppression de tout champ
	<code>Vary</code> des en-t&ecirc;tes de la r&eacute;ponse avant que cette derni&egrave;re
	soit renvoy&eacute;e au client. Certains clients n'interpr&egrave;tent pas ce champ
	correctement, et la d&eacute;finition de cette variable permet de contourner
	ce probl&egrave;me, mais implique aussi la d&eacute;finition de
	<strong>force-response-1.0</strong>.</p>

    
    <h3 id="force-response">force-response-1.0</h3>
        

      <p>Cette variable force une r&eacute;ponse en langage HTTP/1.0 aux clients
      qui envoient des requ&ecirc;tes dans le m&ecirc;me langage. Elle fut impl&eacute;ment&eacute;e &agrave;
      l'origine suite &agrave; des probl&egrave;mes avec les mandataires d'AOL. Certains
      clients en langage HTTP/1.0 ne r&eacute;agissent pas correctement face &agrave; une
      r&eacute;ponse en langage HTTP/1.1, et cette variable peut &ecirc;tre utilis&eacute;e pour
      assurer l'interop&eacute;rabilit&eacute; avec eux.</p>

    

    <h3 id="gzip-only-text-html">gzip-only-text/html</h3>
        

        <p>Positionn&eacute;e &agrave; &laquo;&nbsp;1&nbsp;&raquo;, cette variable d&eacute;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&eacute;f&eacute;rez
	utiliser des fichiers compress&eacute;s statiquement,
	<code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code> &eacute;value aussi la variable (non
	seulement pour gzip, mais aussi pour tous les encodages autres que
	&laquo;&nbsp;identity&nbsp;&raquo;).</p>
    

    <h3 id="no-gzip">no-gzip</h3>

        <p>Quand cette variable est d&eacute;finie, le filtre <code>DEFLATE</code> du
	module <code class="module"><a href="./mod/mod_deflate.html">mod_deflate</a></code> est d&eacute;sactiv&eacute;, et
        <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code> refusera de d&eacute;livrer des ressources
	encod&eacute;es.</p>

    

    <h3 id="no-cache">no-cache</h3>
    	<p><em>Disponible dans les versions 2.2.12 et ult&eacute;rieures d'Apache httpd</em></p>

        <p>Lorsque cette variable est d&eacute;finie,
	<code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> ne sauvegardera pas de r&eacute;ponse
	susceptible d'&ecirc;tre mise en cache. Cette variable d'environnement
	n'a aucune incidence sur le fait qu'une r&eacute;ponse d&eacute;j&agrave; enregistr&eacute;e
	dans le cache soit utilis&eacute;e ou non pour la requ&ecirc;te courante.</p>

    

    <h3 id="nokeepalive">nokeepalive</h3>
        

        <p>Quand cette variable est d&eacute;finie, la directive
	<code class="directive"><a href="./mod/core.html#keepalive">KeepAlive</a></code> est d&eacute;sactiv&eacute;e.</p>

    

    <h3 id="prefer-language">prefer-language</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&eacute;livrer une variante dans ce langage. S'il n'existe pas de telle
	variante, le processus normal de
	<a href="content-negotiation.html">n&eacute;gociation</a> s'applique.</p>

    

    <h3 id="redirect-carefully">redirect-carefully</h3>
        

        <p>Cette variable force le serveur &agrave; &ecirc;tre plus prudent lors de l'envoi
	d'une redirection au client. Elle est en g&eacute;n&eacute;ral utilis&eacute;e quand un
	client pr&eacute;sente un probl&egrave;me connu avec les redirections. Elle fut
	impl&eacute;ment&eacute;e &agrave; l'origine suite a un probl&egrave;me rencontr&eacute; avec le logiciel
	WebFolders de Microsoft qui ne g&egrave;re pas correctement les redirections
	vers des ressources de type r&eacute;pertoire via des m&eacute;thodes DAV.</p>

    

   <h3 id="suppress-error-charset">suppress-error-charset</h3>
       

    <p><em>Disponible dans les versions post&eacute;rieures &agrave; 2.0.54</em></p>

    <p>Quand Apache httpd g&eacute;n&egrave;re une redirection en r&eacute;ponse &agrave; une requ&ecirc;te client,
    la r&eacute;ponse inclut un texte destin&eacute; &agrave; &ecirc;tre affich&eacute; au cas o&ugrave; le client ne
    suivrait pas, ou ne pourrait pas suivre automatiquement la redirection.
    Habituellement, Apache httpd marque ce texte en accord avec le jeu de caract&egrave;res
    qu'il utilise, &agrave; savoir ISO-8859-1.</p>
    <p> Cependant, si la redirection fait r&eacute;f&eacute;rence &agrave; une page qui utilise un
    jeu de caract&egrave;res diff&eacute;rent, certaines versions de navigateurs obsol&egrave;tes
    essaieront d'utiliser le jeu de caract&egrave;res du texte de la redirection
    plut&ocirc;t que celui de la page r&eacute;elle.
    Cela peut entra&icirc;ner, par exemple, un rendu incorrect du Grec.</p>
    <p>Si cette variable d'environnement est d&eacute;finie, Apache httpd omettra le jeu de
    caract&egrave;res pour le texte de la redirection, et les navigateurs obsol&egrave;tes
    pr&eacute;cit&eacute;s utiliseront correctement celui de la page de destination.</p>

    <div class="warning">
      <h3>Note concernant la s&eacute;curit&eacute;</h3>

      <p>L'envoi de pages d'erreur sans sp&eacute;cifier un jeu de caract&egrave;res peut
      conduire &agrave; des attaques de type &laquo;&nbsp;cross-site-scripting" pour les
      navigateurs qui ne respectent pas la sp&eacute;cification HTTP/1.1 (MSIE) et
      tentent de d&eacute;duire le jeu de caract&egrave;res &agrave; partir du contenu. De tels
      navigateurs peuvent &ecirc;tre facilement tromp&eacute;s et utiliser le jeu de
      caract&egrave;res UTF-7 ; les contenus des donn&eacute;es en entr&eacute;e de type UTF-7
      (comme les URI de requ&ecirc;te) ne seront alors plus prot&eacute;g&eacute;s par les
      m&eacute;canismes d'&eacute;chappement usuels con&ccedil;us pour pr&eacute;venir les attaques
      de type &laquo;&nbsp;cross-site-scripting".</p>
    </div>

   

   <h3 id="proxy">force-proxy-request-1.0, proxy-nokeepalive, proxy-sendchunked,
   proxy-sendcl, proxy-chain-auth, proxy-interim-response, proxy-initial-not-pooled</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
   <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&eacute;tails.</p>
   

   <h3 id="cgilike">ap_trust_cgilike_cl</h3>
   <p><em>Disponible &agrave; partir de la version 2.4.59 du serveur HTTP Apache</em></p>
     <p>Cette variable permet &agrave; un script qui s'ex&eacute;cute dans un module de type CGI
     de fournir son propre en-t&ecirc;te de r&eacute;ponse HTTP Content-Length. Elle ne doit
     &ecirc;tre d&eacute;finie que dans les sections de configuration qui contiennent des
     scripts de confiance.</p>
   

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="redirect-vars">Variables REDIRECT_ <a title="Lien permanent" href="#redirect-vars" class="permalink">&para;</a></h2>

    <p>Lorsqu'une redirection interne se produit &mdash;&nbsp;provoqu&eacute;e par une directive
    <code class="directive"><a href="./mod/core.html#errordocument">ErrorDocument</a></code>, par
    <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code>, par une directive <code class="directive"><a href="./mod/mod_dir.html#fallbackresource">FallbackResource</a></code> ou par tout autre m&eacute;canisme de
    redirection interne &mdash;&nbsp;les variables d'environnement de la requ&ecirc;te originelle
    sont transmises &agrave; la cible de la redirection avec le pr&eacute;fixe
    <code>REDIRECT_</code>.</p>

    <p>Deux variables suppl&eacute;mentaires sont toujours d&eacute;finies&nbsp;:</p>

    <dl>
      <dt><code>REDIRECT_URL</code></dt>
      <dd>Le chemin URL de la requ&ecirc;te originelle avant la redirection interne.
      Cette variable n'est pas d&eacute;finie par un quelconque module sp&eacute;cifique, mais
      par le cœur du serveur.</dd>

      <dt><code>REDIRECT_STATUS</code></dt>
      <dd>Le code d'&eacute;tat HTTP qui a d&eacute;clench&eacute; la redirection. Pour les
      documents d'erreur, il s'agit du code d'&eacute;tat d'erreur (par exemple 404).
      Pour les redirections internes de <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> ou de la
      directive <code class="directive"><a href="./mod/mod_dir.html#fallbackresource">FallbackResource</a></code>, il
      s'agit en g&eacute;n&eacute;ral du code d'&eacute;tat 200.</dd>
    </dl>

    <p>Par exemple, si la valeur de <code>REQUEST_URI</code> &eacute;tait
    <code>/original/chemin</code> et qu'une redirection interne envoyait la
    requ&ecirc;te &agrave; <code>/handler.php</code>, la cible de la redirection verrait
    <code>REDIRECT_URL=/original/path</code> et
    <code>REQUEST_URI=/handler.php</code>.</p>

    <p>Ces variables sont disponibles pour les scripts CGI, les pages SSI et
    dans les <a href="expr.html">expressions</a>. Pour plus d'informations &agrave;
    propos des variables REDIRECT_ dans le contexte des documents d'erreur, voir
    <a href="custom-error.html">R&eacute;ponses aux erreurs personnalis&eacute;es</a>.</p>

   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="examples">Exemples <a title="Lien permanent" href="#examples" class="permalink">&para;</a></h2>
    

    <h3 id="fixheader">Transmission du contenu d'en-t&ecirc;tes non valides aux scripts
      CGI</h3>
      

      <p>Avec la version 2.4, Apache httpd est plus strict avec la conversion
      des en-t&ecirc;tes HTTP en variables d'environnement dans
      <code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code> et d'autres modules : dans les versions
      pr&eacute;c&eacute;dentes, tout caract&egrave;re non valable dans les noms d'en-t&ecirc;tes
      &eacute;tait tout simplement remplac&eacute; par un caract&egrave;re '_', ce qui
      pouvait exposer &agrave; des attaques de type cross-site-scripting via
      injection d'en-t&ecirc;tes.</p>

      <p>Si vous devez prendre en charge un client qui envoie des en-t&ecirc;tes non
      conformes et si ceux-ci ne peuvent pas &ecirc;tre corrig&eacute;s, il existe
      une solution de contournement simple mettant en jeu les modules
      <code class="module"><a href="./mod/mod_setenvif.html">mod_setenvif</a></code> et <code class="module"><a href="./mod/mod_headers.html">mod_headers</a></code>,
      et permettant de prendre en compte ces en-t&ecirc;tes :</p>

<pre class="prettyprint lang-config"># L'exemple suivant montre comment prendre en compte un en-t&ecirc;te<br>
# Accept_Encoding non conforme envoy&eacute; par un client.
#
SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1
RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding</pre>


    

    <h3 id="misbehaving">Modification du comportement protocolaire face &agrave; des clients
	r&eacute;agissant de mani&egrave;re non conforme</h3>
        

        <p>Les versions ant&eacute;rieures recommandaient l'ajout de ces lignes dans
        httpd.conf pour tenir compte de probl&egrave;mes connus avec certains clients.
	Comme les clients concern&eacute;s sont maintenant tr&egrave;s peu utilis&eacute;s, cet
	ajout n'est pratiquement plus n&eacute;cessaire.</p>
<pre class="prettyprint lang-config">#
# 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
# 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>


    
    <h3 id="no-img-log">Ne pas tracer les requ&ecirc;tes pour des images dans le fichier de
	trace des acc&egrave;s</h3>
        

        <p>Dans cet exemple, les requ&ecirc;tes pour des images n'apparaissent pas
	dans le fichier de trace des acc&egrave;s. Il peut &ecirc;tre facilement adapt&eacute; pour
	emp&ecirc;cher le tra&ccedil;age de r&eacute;pertoires particuliers, ou de requ&ecirc;tes
        en provenance de certains h&ocirc;tes.</p>
         <pre class="prettyprint lang-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</pre>


    
    <h3 id="image-theft">Pr&eacute;vention du &laquo;&nbsp;Vol d'image&nbsp;&raquo;</h3>
        

        <p>Cet exemple montre comment emp&ecirc;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&eacute;e, mais elle peut fonctionner dans des circonstances bien
	d&eacute;finies. Nous supposons que toutes vos images sont enregistr&eacute;es dans
	un r&eacute;pertoire nomm&eacute; <code>/web/images</code>.</p>
    	<pre class="prettyprint lang-config">SetEnvIf Referer "^http://www\.example\.com/" local_referal
# Autorise les navigateurs qui n'envoient aucune information de Referer
SetEnvIf Referer "^$" local_referal
&lt;Directory "/web/images"&gt;
    Require env local_referal
&lt;/Directory&gt;</pre>


        <p>Pour plus d'informations sur cette technique, voir le tutoriel sur
	ServerWatch
	"<a href="https://www.serverwatch.com/guides/keeping-your-images-from-adorning-other-sites/">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">&nbsp;en&nbsp;</a> |
<a href="./fr/env.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/env.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/env.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/env.html" hreflang="tr" rel="alternate" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autoris&eacute; sous <a href="https://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/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>