mirror of
				https://github.com/apache/httpd.git
				synced 2025-11-03 17:53:20 +03:00 
			
		
		
		
	git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1820055 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			1224 lines
		
	
	
		
			64 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1224 lines
		
	
	
		
			64 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
<?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">
 | 
						||
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
 | 
						||
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
 | 
						||
<!--
 | 
						||
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 | 
						||
              This file is generated from xml source: DO NOT EDIT
 | 
						||
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 | 
						||
      -->
 | 
						||
<title>mod_include - Serveur Apache HTTP Version 2.5</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" type="text/javascript">
 | 
						||
</script>
 | 
						||
 | 
						||
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
 | 
						||
<body>
 | 
						||
<div id="page-header">
 | 
						||
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/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.5</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="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.5</a> > <a href="./">Modules</a></div>
 | 
						||
<div id="page-content">
 | 
						||
<div id="preamble"><h1>Module Apache mod_include</h1>
 | 
						||
<div class="toplang">
 | 
						||
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_include.html" hreflang="en" rel="alternate" title="English"> en </a> |
 | 
						||
<a href="../fr/mod/mod_include.html" title="Fran<61>ais"> fr </a> |
 | 
						||
<a href="../ja/mod/mod_include.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
 | 
						||
</div>
 | 
						||
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Documents html interpr<70>t<EFBFBD>s par le serveur (Server Side
 | 
						||
Includes ou SSI)</td></tr>
 | 
						||
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
 | 
						||
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur<75>de<64>Module:</a></th><td>include_module</td></tr>
 | 
						||
<tr><th><a href="module-dict.html#SourceFile">Fichier<65>Source:</a></th><td>mod_include.c</td></tr></table>
 | 
						||
<h3>Sommaire</h3>
 | 
						||
 | 
						||
    <p>Ce module fournit un filtre qui va traiter les fichiers avant
 | 
						||
    de les envoyer au client. Le traitement est contr<74>l<EFBFBD> via des
 | 
						||
    commentaires SGML sp<73>cialement format<61>s, aussi nomm<6D>s
 | 
						||
    <dfn><3E>l<EFBFBD>ments</dfn>. Ces <20>l<EFBFBD>ments permettent l'insertion
 | 
						||
    conditionnelle de texte, l'inclusion d'autres fichiers ou
 | 
						||
    programmes, ainsi que la d<>finition et l'affichage de variables
 | 
						||
    d'environnement.</p>
 | 
						||
</div>
 | 
						||
<div id="quickview"><h3>Sujets</h3>
 | 
						||
<ul id="topics">
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#enabling">Activation des SSI</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#pathinfo">PATH_INFO et SSI</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#elements">El<45>ments disponibles</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#includevars">Variables include</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#substitution">Substitution de variable</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#flowctrl">El<45>ments de contr<74>le d'inclusion conditionnelle</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#legacyexpr">Syntaxe des expressions h<>rit<69>e</a></li>
 | 
						||
</ul><h3 class="directives">Directives</h3>
 | 
						||
<ul id="toc">
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#ssiendtag">SSIEndTag</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#ssierrormsg">SSIErrorMsg</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#ssietag">SSIETag</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#ssilastmodified">SSILastModified</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#ssilegacyexprparser">SSILegacyExprParser</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#ssistarttag">SSIStartTag</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#ssitimeformat">SSITimeFormat</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#ssiundefinedecho">SSIUndefinedEcho</a></li>
 | 
						||
<li><img alt="" src="../images/down.gif" /> <a href="#xbithack">XBitHack</a></li>
 | 
						||
</ul>
 | 
						||
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_include">Probl<62>mes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_include">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
 | 
						||
<ul class="seealso">
 | 
						||
<li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li>
 | 
						||
<li><code class="directive"><a href="../mod/core.html#acceptpathinfo">AcceptPathInfo</a></code></li>
 | 
						||
<li><a href="../filter.html">Les filtres</a></li>
 | 
						||
<li><a href="../howto/ssi.html">Tutoriel SSI</a></li>
 | 
						||
<li><a href="#comments_section">Commentaires</a></li></ul></div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="enabling" id="enabling">Activation des SSI</a></h2>
 | 
						||
    
 | 
						||
 | 
						||
    <p>Les SSI sont impl<70>ment<6E>s par le <a href="../filter.html">filtre</a> <code>INCLUDES</code>. Si des
 | 
						||
    documents contenant des directives SSI poss<73>dent une extension
 | 
						||
    .shtml, les directives suivantes indiqueront <20> Apache de les
 | 
						||
    interpr<70>ter et d'assigner le type MIME
 | 
						||
    <code>text/html</code> au document obtenu :</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config">AddType text/html .shtml
 | 
						||
AddOutputFilter INCLUDES .shtml</pre>
 | 
						||
 | 
						||
 | 
						||
    <p>L'option suivante doit <20>tre d<>finie pour les r<>pertoires qui
 | 
						||
    contiennent les fichiers shtml (en g<>n<EFBFBD>ral dans une section
 | 
						||
    <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>, mais
 | 
						||
    cette option peut <20>galement <20>tre d<>finie dans un fichier
 | 
						||
    <code>.htaccess</code> si <code><code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> Options</code> a <20>t<EFBFBD> d<>fini pour le
 | 
						||
    r<>pertoire consid<69>r<EFBFBD>) :</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config">Options +Includes</pre>
 | 
						||
 | 
						||
 | 
						||
    <p>Pour des raisons de compatibilit<69> ascendante, le <a href="../handler.html">gestionnaire</a>  <code>server-parsed</code>
 | 
						||
    peut aussi activer le filtre INCLUDES. Ainsi, Apache va activer le
 | 
						||
    filtre INCLUDES pour tout document de type MIME
 | 
						||
    <code>text/x-server-parsed-html</code> ou
 | 
						||
    <code>text/x-server-parsed-html3</code> (et le document obtenu aura
 | 
						||
    pour type MIME <code>text/html</code>).</p>
 | 
						||
 | 
						||
    <p>Pour plus d'informations, voyez notre <a href="../howto/ssi.html">Tutoriel SSI</a>.</p>
 | 
						||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="pathinfo" id="pathinfo">PATH_INFO et SSI</a></h2>
 | 
						||
    
 | 
						||
 | 
						||
    <p>Les fichiers trait<69>s dans le cadre des SSI n'acceptent plus par
 | 
						||
    d<>faut les requ<71>tes avec <code>PATH_INFO</code> (les informations
 | 
						||
    relatives au chemin en fin de requ<71>te). La directive <code class="directive"><a href="../mod/core.html#acceptpathinfo">AcceptPathInfo</a></code> permet de configurer le
 | 
						||
    serveur de fa<66>on <20> ce qu'il accepte ce genre de requ<71>te.</p>
 | 
						||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="elements" id="elements">El<45>ments disponibles</a></h2>
 | 
						||
    <p>Le document est interpr<70>t<EFBFBD> comme un document HTML, avec des
 | 
						||
    commandes sp<73>ciales incluses sous forme de commentaires SGML. La
 | 
						||
    syntaxe d'une commande est la suivante : </p>
 | 
						||
 | 
						||
    <div class="example"><p><code>
 | 
						||
      <!--#<var><3E>l<EFBFBD>ment</var> <var>attribut</var>=<var>valeur</var>
 | 
						||
      <var>attribut</var>=<var>valeur</var> ... -->
 | 
						||
    </code></p></div>
 | 
						||
 | 
						||
    <p>Les valeurs sont souvent entour<75>es de guillemets, mais on peut
 | 
						||
    aussi utiliser des apostrophes (<code>'</code>) ou des apostrophes
 | 
						||
    inverses (<code>`</code>). De nombreuses commandes n'acceptent
 | 
						||
    qu'une seule paire attribut-valeur. Notez que le terminateur de
 | 
						||
    commentaire (<code>--></code>) doit <20>tre pr<70>c<EFBFBD>d<EFBFBD> d'un espace afin
 | 
						||
    d'<27>tre s<>r qu'il ne soit pas consid<69>r<EFBFBD> comme un <20>l<EFBFBD>ment de commande
 | 
						||
    SSI. Notez aussi que le d<>limiteur de d<>but <code><!--#</code>
 | 
						||
    est <em>un</em> <20>l<EFBFBD>ment de commande et ne doit donc pas contenir
 | 
						||
    d'espace.</p>
 | 
						||
 | 
						||
    <p>La table suivante contient la liste des <20>l<EFBFBD>ments autoris<69>s :</p>
 | 
						||
 | 
						||
    <table class="bordered">
 | 
						||
    <tr><th>El<45>ment</th><th>Description</th></tr>
 | 
						||
    <tr><td><code><a href="#element.comment">comment</a></code></td>
 | 
						||
        <td>commentaire SSI</td></tr>
 | 
						||
    <tr><td><code><a href="#element.config">config</a></code></td>
 | 
						||
        <td>configure les formats de sortie</td></tr>
 | 
						||
    <tr><td><code><a href="#element.echo">echo</a></code></td>
 | 
						||
        <td>affiche le contenu de variables</td></tr>
 | 
						||
    <tr><td><code><a href="#element.exec">exec</a></code></td>
 | 
						||
        <td>ex<65>cute des programmes externes</td></tr>
 | 
						||
    <tr><td><code><a href="#element.fsize">fsize</a></code></td>
 | 
						||
        <td>affiche la taille d'un fichier</td></tr>
 | 
						||
    <tr><td><code><a href="#element.flastmod">flastmod</a></code></td>
 | 
						||
        <td>affiche la date de derni<6E>re modification d'un fichier</td></tr>
 | 
						||
    <tr><td><code><a href="#element.include">include</a></code></td>
 | 
						||
        <td>inclut un fichier</td></tr>
 | 
						||
    <tr><td><code><a href="#element.printenv">printenv</a></code></td>
 | 
						||
        <td>affiche toutes les variables disponibles</td></tr>
 | 
						||
    <tr><td><code><a href="#element.set">set</a></code></td>
 | 
						||
        <td>d<>finit la valeur d'une variable</td></tr>
 | 
						||
    </table>
 | 
						||
 | 
						||
    <p>Les <20>l<EFBFBD>ments SSI peuvent <20>tre d<>finis par d'autres modules que
 | 
						||
    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>. <20> ce titre, l'<27>l<EFBFBD>ment <code><a href="#element.exec">exec</a></code> est fourni par
 | 
						||
    <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, et ne sera disponible que si ce module est
 | 
						||
    charg<72>.</p>
 | 
						||
 | 
						||
    <h3><a name="element.comment" id="element.comment">L'<27>l<EFBFBD>ment comment</a></h3>
 | 
						||
      <p>Cette commande n'affiche aucune information. Elle n'a pour but que
 | 
						||
      l'ajout de commentaires dans un fichier et ces commentaires ne sont pas
 | 
						||
      affich<63>s.</p>
 | 
						||
 | 
						||
      <p>Cette syntaxe est disponible <20> partir de la version 2.4.21 du serveur
 | 
						||
      HTTP Apache.</p>
 | 
						||
 | 
						||
      <div class="example"><p><code>
 | 
						||
      <!--#comment Blah Blah Blah -->
 | 
						||
      </code></p></div>
 | 
						||
     
 | 
						||
    
 | 
						||
    <h3><a name="element.config" id="element.config">L'<27>l<EFBFBD>ment config</a></h3>
 | 
						||
      <p>Cette commande contr<74>le divers aspects de l'interpr<70>tation. Les
 | 
						||
      attributs valides sont :</p>
 | 
						||
 | 
						||
      <dl>
 | 
						||
      <dt><code>echomsg</code> (<em>Versions 2.1 et sup<75>rieures
 | 
						||
      d'Apache</em>)</dt>
 | 
						||
      <dd><p>La valeur est un message qui sera envoy<6F> au client si
 | 
						||
      l'<27>l<EFBFBD>ment <code><a href="#element.echo">echo</a></code> tente
 | 
						||
      d'afficher le contenu d'une variable non d<>finie. Cet attribut
 | 
						||
      l'emporte sur toute directive <code class="directive"><a href="#ssiundefinedecho">SSIUndefinedEcho</a></code>.</p>
 | 
						||
 | 
						||
      <div class="example"><p><code>
 | 
						||
        <!--#config echomsg="[Valeur non d<>finie]" -->
 | 
						||
      </code></p></div>
 | 
						||
 | 
						||
      </dd>
 | 
						||
 | 
						||
      <dt><code>errmsg</code></dt>
 | 
						||
      <dd><p>La valeur est un message qui sera envoy<6F> au client si une
 | 
						||
      erreur survient lors de l'interpr<70>tation du document. Cet attribut
 | 
						||
      l'emporte sur toute directive <code class="directive"><a href="#ssierrormsg">SSIErrorMsg</a></code>.</p>
 | 
						||
 | 
						||
      <div class="example"><p><code>
 | 
						||
       <!--#config errmsg="[Zut, quelque chose s'est mal pass<73>.]" -->
 | 
						||
      </code></p></div>
 | 
						||
 | 
						||
      </dd>
 | 
						||
 | 
						||
      <dt><code>sizefmt</code></dt>
 | 
						||
      <dd><p>La valeur d<>finit l'unit<69> employ<6F>e lors de l'affichage de la
 | 
						||
      taille d'un fichier. Les valeurs possibles sont <code>bytes</code>
 | 
						||
      pour une taille en octets, ou <code>abbrev</code> pour une taille
 | 
						||
      en Ko ou Mo selon son importance ; par exemple, une taille de 1024
 | 
						||
      octets sera affich<63>e sous la forme "1K".</p>
 | 
						||
 | 
						||
      <div class="example"><p><code>
 | 
						||
      <!--#config sizefmt="abbrev" -->
 | 
						||
      </code></p></div>
 | 
						||
 | 
						||
      </dd>
 | 
						||
 | 
						||
      <dt><code>timefmt</code></dt>
 | 
						||
      <dd><p>La valeur est une cha<68>ne que pourra utiliser la fonction de la
 | 
						||
      biblioth<74>que standard <code>strftime(3)</code> lors de l'affichage
 | 
						||
      des dates.</p>
 | 
						||
 | 
						||
      <div class="example"><p><code>
 | 
						||
      <!--#config timefmt=""%R, %B %d, %Y"" -->
 | 
						||
      </code></p></div>
 | 
						||
 | 
						||
      </dd>
 | 
						||
      
 | 
						||
      </dl>
 | 
						||
     
 | 
						||
 | 
						||
    <h3><a name="element.echo" id="element.echo">L'<27>l<EFBFBD>ment echo</a></h3>
 | 
						||
      <p>Cette commande affiche le contenu d'une des <a href="#includevars">variables include</a> d<>finies ci-dessous. Si
 | 
						||
      la variable n'est pas d<>finie, le r<>sultat est d<>termin<69> par la
 | 
						||
      valeur de la directive <code class="directive"><a href="#ssiundefinedecho">SSIUndefinedEcho</a></code>. Le format d'affichage des dates est
 | 
						||
      d<>fini par l'attribut <code>timefmt</code> de la commande
 | 
						||
      config.</p>
 | 
						||
 | 
						||
      <p>Attributs:</p>
 | 
						||
 | 
						||
      <dl>
 | 
						||
      <dt><code>var</code></dt>
 | 
						||
      <dd>La valeur est le nom de la variable <20> afficher.</dd>
 | 
						||
 | 
						||
      <dt><code>decoding</code></dt>
 | 
						||
      <dd><p>Sp<53>cifie si Apache doit effectuer un d<>codage dans la
 | 
						||
      variable avant son traitement ult<6C>rieur. La valeur par d<>faut est
 | 
						||
      <code>none</code>, et dans ce cas, aucun d<>codage n'est effectu<74>.
 | 
						||
      Si la valeur est <code>url</code>, un d<>codage de type URL sera
 | 
						||
      effectu<74> (il s'agit du codage de type %-encoding utilis<69> dans les
 | 
						||
      URLs des liens, etc...). Si la valeur est <code>urlencoded</code>,
 | 
						||
      c'est un d<>codage des <20>l<EFBFBD>ments de type
 | 
						||
      application/x-www-form-urlencode (que l'on trouve dans les cha<68>nes
 | 
						||
      de param<61>tres) qui sera effectu<74>. Si la valeur est
 | 
						||
      <code>base64</code>, un
 | 
						||
      decodage de type base64 sera effectu<74>, et si elle est
 | 
						||
      <code>entity</code>, c'est un d<>codage des entit<69>s HTML qui sera
 | 
						||
      effectu<74>. Ce d<>codage est effectu<74> avant tout codage ult<6C>rieur de
 | 
						||
      la variable. Il est possible d'effectuer plusieurs d<>codages en
 | 
						||
      sp<73>cifiant plusieurs valeurs s<>par<61>es par des virgules. Les
 | 
						||
      sp<73>cifications de d<>codages restent valables jusqu'au prochain
 | 
						||
      attribut de d<>codage, ou la fin de l'<27>l<EFBFBD>ment.</p>
 | 
						||
 | 
						||
      <p>Pour <20>tre pris en compte, l'attribut de <code>d<>codage</code>
 | 
						||
      doit <em>pr<70>c<EFBFBD>der</em> l'attribut <code>var</code> correspondant.</p>
 | 
						||
      </dd>
 | 
						||
 | 
						||
      <dt><code>encoding</code></dt>
 | 
						||
      <dd><p>Sp<53>cifie la mani<6E>re dont Apache va coder les caract<63>res
 | 
						||
      sp<73>ciaux que la variable contient avant leur affichage. S'il est
 | 
						||
      d<>fini <20> <code>none</code>, aucun codage ne sera effectu<74>. S'il
 | 
						||
      est d<>fini <20> <code>url</code>, un codage de type URL sera effectu<74>
 | 
						||
      (aussi connu sous le nom de codage avec caract<63>res % , il convient
 | 
						||
      pour les URLS des liens, etc...). S'il est d<>fini <20>
 | 
						||
      <code>urlencoded</code>, c'est un codage compatible
 | 
						||
      application/x-www-form-urlencoded qui sera effectu<74> (<28> utiliser
 | 
						||
      dans les cha<68>nes de param<61>tres). S'il est d<>fini <20>
 | 
						||
      <code>base64</code>, c'est un encodage de type base64 qui sera
 | 
						||
      effectu<74>. Au d<>but d'un <20>l<EFBFBD>ment
 | 
						||
      <code>echo</code>, la valeur par d<>faut est d<>finie <20>
 | 
						||
      <code>entity</code>, ce qui correspond <20> un codage de type entit<69>
 | 
						||
      (codage qui convient pour un <20>l<EFBFBD>ment HTML de type bloc, comme le
 | 
						||
      paragraphe d'un texte). Cette valeur par d<>faut peut <20>tre modifi<66>e
 | 
						||
      en ajoutant un attribut <code>encoding</code>, qui fera effet
 | 
						||
      jusqu'<27> la d<>finition d'un nouvel attribut <code>encoding</code>
 | 
						||
      ou la fin de l'<27>l<EFBFBD>ment echo.</p>
 | 
						||
 | 
						||
      <p>Pour produire son effet, l'attribut <code>encoding</code> doit
 | 
						||
      pr<70>c<EFBFBD>der l'attribut <code>var</code> concern<72>.</p>
 | 
						||
 | 
						||
      <div class="warning">
 | 
						||
        Afin de pr<70>venir les attaques de type cross-site scripting, il
 | 
						||
	est recommand<6E> de <em>toujours</em> encoder les donn<6E>es fournies
 | 
						||
	par les utilisateurs.
 | 
						||
      </div>
 | 
						||
 | 
						||
      <div class="example"><h3>Example</h3><p><code>
 | 
						||
        <!--#echo encoding="entity" var="QUERY_STRING" -->
 | 
						||
      </code></p></div>
 | 
						||
      </dd>
 | 
						||
      </dl>
 | 
						||
     
 | 
						||
 | 
						||
    <h3><a name="element.exec" id="element.exec">L'<27>l<EFBFBD>ment exec</a></h3>
 | 
						||
      <p>La commande <code>exec</code> ex<65>cute la commande shell ou le
 | 
						||
      script sp<73>cifi<66>. Elle n<>cessite le chargement du module
 | 
						||
      <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>. Si <code class="directive"><a href="../mod/core.html#options">Options</a></code> <code>IncludesNOEXEC</code> est
 | 
						||
      d<>finie, cette commande est d<>sactiv<69>e. Les attributs disponibles
 | 
						||
      sont :</p>
 | 
						||
 | 
						||
      <dl>
 | 
						||
      <dt><code>cgi</code></dt>
 | 
						||
      <dd><p>La valeur sp<73>cifie un chemin URL vers le script CGI (encod<6F>
 | 
						||
      avec caract<63>res %). Si le chemin ne commence pas par un slash (/),
 | 
						||
      il est consid<69>r<EFBFBD> comme relatif au document courant. Le document
 | 
						||
      r<>f<EFBFBD>renc<6E> par ce chemin est invoqu<71> en tant que script CGI, m<>me
 | 
						||
      s'il n'est pas cens<6E> <20>tre reconnu comme tel par le serveur. Les
 | 
						||
      scripts CGI doivent cependant <20>tre activ<69>s dans le r<>pertoire qui
 | 
						||
      contient les scripts (via la directive <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> ou l'<code class="directive"><a href="../mod/core.html#options">Options</a></code> <code>ExecCGI</code>).</p>
 | 
						||
 | 
						||
      <p>Le <code>PATH_INFO</code> et la cha<68>ne d'arguments
 | 
						||
      (<code>QUERY_STRING</code>) de la requ<71>te originale du client sont
 | 
						||
      fournis au script CGI ; ils <em>ne peuvent pas</em> <20>tre sp<73>cifi<66>s
 | 
						||
      dans le chemin de l'URL. Le script disposera des variables include
 | 
						||
      en plus de l'environnement standard <a href="mod_cgi.html">CGI</a>.</p>
 | 
						||
 | 
						||
      <div class="example"><h3>Exemple</h3><p><code>
 | 
						||
        <!--#exec cgi="/cgi-bin/exemple.cgi" -->
 | 
						||
      </code></p></div>
 | 
						||
 | 
						||
      <p>Si, <20> la place d'un flux de sortie, le script renvoie un
 | 
						||
      en-t<>te <code>Location:</code>, ce dernier sera traduit en ancrage
 | 
						||
      HTML.</p>
 | 
						||
 | 
						||
      <p>L'<27>l<EFBFBD>ment <code><a href="#includevirtual">include
 | 
						||
      virtual</a></code> doit <20>tre pr<70>f<EFBFBD>r<EFBFBD> <20> <code>exec cgi</code>. En
 | 
						||
      particulier, si vous devez transmettre des arguments
 | 
						||
      suppl<70>mentaires <20> un programme CGI en utilisant la cha<68>ne
 | 
						||
      d'arguments de la requ<71>te, c'est impossible avec <code>exec
 | 
						||
      cgi</code>, mais vous pouvez y parvenir avec <code>include
 | 
						||
      virtual</code> comme suit :</p>
 | 
						||
 | 
						||
      <div class="example"><p><code>
 | 
						||
        <!--#include virtual="/cgi-bin/exemple.cgi?argument=valeur" -->
 | 
						||
      </code></p></div>
 | 
						||
      </dd>
 | 
						||
 | 
						||
      <dt><code>cmd</code></dt>
 | 
						||
      <dd><p>Le serveur va ex<65>cuter la commande fournie en utilisant
 | 
						||
      <code>/bin/sh</code>. La commande dispose des <a href="#includevars">variables include</a>, en plus du jeu habituel
 | 
						||
      de variables CGI.</p>
 | 
						||
 | 
						||
      <p>Il est toujours pr<70>f<EFBFBD>rable d'utiliser <code><a href="#includevirtual">#include virtual</a></code> <20> la place de
 | 
						||
      <code>#exec cgi</code> ou <code>#exec cmd</code>. <code>#include
 | 
						||
      virtual</code> utilise le m<>canisme standard des sous-requ<71>tes
 | 
						||
      d'Apache pour inclure des fichiers ou des scripts. Il a fait
 | 
						||
      l'objet de tests plus approfondis et sa maintenance est mieux
 | 
						||
      suivie.</p>
 | 
						||
 | 
						||
      <p>De plus, sur certaines plate-formes, comme Win32, et sous unix,
 | 
						||
      si l'on utilise <a href="../suexec.html">suexec</a>, il est
 | 
						||
      impossible de transmettre des arguments <20> une commande dans une
 | 
						||
      directive <code>exec</code>, <20> moins d'ins<6E>rer des espaces dans la
 | 
						||
      commande. Ainsi, alors que ce qui suit fonctionnera sous unix avec
 | 
						||
      une configuration sans suexec, l'effet produit ne sera pas celui
 | 
						||
      d<>sir<69> sous Win32, ou dans le cas de l'utilisation de suexec
 | 
						||
      :</p>
 | 
						||
 | 
						||
      <div class="example"><p><code>
 | 
						||
        <!--#exec cmd="perl /chemin/vers/script_perl arg1 arg2" -->
 | 
						||
      </code></p></div>
 | 
						||
      </dd>
 | 
						||
      </dl>
 | 
						||
     
 | 
						||
 | 
						||
    <h3><a name="element.fsize" id="element.fsize">L'<27>l<EFBFBD>ment fsize</a></h3>
 | 
						||
      <p>Cette commande permet d'afficher la taille du fichier sp<73>cifi<66>
 | 
						||
      en fonction des sp<73>cifications de format de <code>sizefmt</code>.
 | 
						||
      Attributs :</p>
 | 
						||
 | 
						||
      <dl>
 | 
						||
      <dt><code>file</code></dt>
 | 
						||
      <dd>La valeur est le chemin du fichier, relatif au r<>pertoire
 | 
						||
      contenant le document en cours d'interpr<70>tation.
 | 
						||
 | 
						||
      <div class="example"><p><code>
 | 
						||
        Ce fichier a une taille de <!--#fsize file="mod_include.html"
 | 
						||
	--> octets.
 | 
						||
    </code></p></div>
 | 
						||
 | 
						||
    La valeur de <code>file</code> ne peut pas faire r<>f<EFBFBD>rence <20> un
 | 
						||
    fichier situ<74> <20> un niveau sup<75>rieur de l'arborescence du r<>pertoire
 | 
						||
    courant ou en dehors de la racine des documents ; il ne peut donc
 | 
						||
    ni commencer par un slash, ni contenir la s<>quence de caract<63>res
 | 
						||
    <code>../</code>. Si c'est le cas, le message d'erreur <code>The
 | 
						||
    given path was above the root path</code> sera renvoy<6F>.
 | 
						||
      </dd>
 | 
						||
 | 
						||
      <dt><code>virtual</code></dt>
 | 
						||
      <dd>La valeur est un chemin URL (cod<6F> avec caract<63>res %). S'il ne
 | 
						||
      commence pas par un slash (/), il est consid<69>r<EFBFBD> comme relatif au
 | 
						||
      document courant. Notez que cette commande n'affiche <em>pas</em>
 | 
						||
      la taille de la sortie d'un programme CGI, mais la taille du
 | 
						||
      programme CGI lui-m<>me.</dd>
 | 
						||
      </dl>
 | 
						||
 | 
						||
      <div class="example"><p><code>
 | 
						||
        Ce fichier a une taille de <!--#fsize
 | 
						||
	virtual="/docs/mod/mod_include.html" --> octets.
 | 
						||
    </code></p></div>
 | 
						||
 | 
						||
      <p>Notez que dans la plupart des cas, ces deux attributs sont
 | 
						||
      identiques. Cependant, l'attribut <code>file</code> ne respecte
 | 
						||
      pas les aliases URL-space.</p>
 | 
						||
     
 | 
						||
 | 
						||
    <h3><a name="element.flastmod" id="element.flastmod">L'<27>l<EFBFBD>ment flastmod</a></h3>
 | 
						||
      <p>Cette commande permet d'afficher la date de derni<6E>re
 | 
						||
      modification du fichier sp<73>cifi<66>, en fonction des sp<73>cifications
 | 
						||
      de format de <code>timefmt</code>. Les attributs sont les m<>mes
 | 
						||
      que ceux de la commande <code><a href="#element.fsize">fsize</a></code>.</p>
 | 
						||
     
 | 
						||
 | 
						||
    <h3><a name="element.include" id="element.include">L'<27>l<EFBFBD>ment include</a></h3>
 | 
						||
      <p>Cette commande permet d'ins<6E>rer le texte d'un autre document ou
 | 
						||
      fichier dans le fichier en cours d'interpr<70>tation. Tout fichier
 | 
						||
      inclus est soumis au contr<74>le d'acc<63>s habituel. Si <a href="core.html#options">Options</a> <code>IncludesNOEXEC</code>
 | 
						||
      est d<>fini pour le r<>pertoire contenant le fichier
 | 
						||
      interpr<70>t<EFBFBD>, seuls les documents poss<73>dant un
 | 
						||
      <a class="glossarylink" href="../glossary.html#type mime" title="voir glossaire">type MIME</a> de type texte
 | 
						||
      (<code>text/plain</code>, <code>text/html</code>, etc...) seront
 | 
						||
      inclus. Les scripts CGI, quant <20> eux, sont invoqu<71>s de mani<6E>re
 | 
						||
      habituelle en utilisant l'URL compl<70>te fournie avec la commande, y
 | 
						||
      compris toute cha<68>ne d'arguments <20>ventuelle.</p>
 | 
						||
 | 
						||
      <p>Un attribut d<>finit le chemin du document <20> inclure, et peut
 | 
						||
      appara<72>tre plusieurs fois dans l'<27>l<EFBFBD>ment <20> inclure ; en retour, pour
 | 
						||
      chaque attribut fourni <20> la commande include, une inclusion est
 | 
						||
      effectu<74>e. Les attributs disponibles sont :</p>
 | 
						||
 | 
						||
      <dl>
 | 
						||
      <dt><code>file</code></dt>
 | 
						||
      <dd>La valeur est un chemin relatif au r<>pertoire contenant le
 | 
						||
      fichier en cours d'interpr<70>tation. Elle ne peut ni contenir
 | 
						||
      <code>../</code>, ni <20>tre un chemin absolu. Ainsi, vous ne pouvez
 | 
						||
      pas inclure de fichiers situ<74>s en dehors de l'arborescence du
 | 
						||
      site web ou dans un niveau sup<75>rieur <20> celui du fichier courant
 | 
						||
      dans cette arborescence. Il est toujours pr<70>f<EFBFBD>rable d'utiliser
 | 
						||
      l'attribut <code>virtual</code>.</dd>
 | 
						||
 | 
						||
      <dt><code><a id="includevirtual" name="includevirtual">virtual</a></code></dt>
 | 
						||
      <dd><p>La valeur est un chemin URL (cod<6F> avec caract<63>res %). L'URL
 | 
						||
      ne peut contenir qu'un chemin et une cha<68>ne d'arguments
 | 
						||
      <20>ventuelle, <20> l'exclusion de tout protocole ou nom d'h<>te. S'il ne
 | 
						||
      commence pas par un slash (/), il est consid<69>r<EFBFBD> comme relatif au
 | 
						||
      document courant.</p>
 | 
						||
 | 
						||
      <p>Une URL est construite <20> partir de l'attribut, et la sortie que
 | 
						||
      renverrait le serveur si l'URL <20>tait acc<63>d<EFBFBD>e par le client est
 | 
						||
      incluse dans la sortie interpr<70>t<EFBFBD>e. Les inclusions de fichiers
 | 
						||
      peuvent ainsi <20>tre imbriqu<71>es.</p>
 | 
						||
 | 
						||
      <p>Si l'URL sp<73>cifi<66>e correspond <20> un programme CGI, le programme
 | 
						||
      sera ex<65>cut<75>, et son flux de sortie ins<6E>r<EFBFBD> <20> la place de la
 | 
						||
      directive dans le fichier interpr<70>t<EFBFBD>. Vous pouvez ins<6E>rer une
 | 
						||
      cha<68>ne d'arguments dans une URL correspond <20> un programme CGI
 | 
						||
      :</p>
 | 
						||
 | 
						||
      <div class="example"><p><code>
 | 
						||
        <!--#include virtual="/cgi-bin/exemple.cgi?argument=valeur" -->
 | 
						||
      </code></p></div>
 | 
						||
 | 
						||
      <p><code>include virtual</code> doit <20>tre pr<70>f<EFBFBD>r<EFBFBD> <20> <code>exec
 | 
						||
      cgi</code> pour inclure le flux de sortie d'un programme CGI dans
 | 
						||
      un document HTML.</p>
 | 
						||
 | 
						||
      <p>Si la directive <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code> est correctement
 | 
						||
      d<>finie et valide pour le fichier inclus, les tentatives de
 | 
						||
      requ<71>tes POST vers le document HTML qui inclut des fichiers seront
 | 
						||
      transmises aux sous-requ<71>tes en tant que requ<71>tes POST
 | 
						||
      elles-m<>mes. Sans cette directive, toutes les sous-requ<71>tes sont
 | 
						||
      trait<69>es en tant que requ<71>tes GET.</p>
 | 
						||
 | 
						||
      </dd>
 | 
						||
 | 
						||
      <dt><code>onerror</code></dt>
 | 
						||
      <dd><p>La valeur est un chemin-URL (cod<6F>-%) qui est affich<63> si une
 | 
						||
      tentative pr<70>c<EFBFBD>dente d'inclure un fichier ou un attribut virtuel a
 | 
						||
      <20>chou<6F>. Pour produire son effet, cet attribut doit <20>tre sp<73>cifi<66>
 | 
						||
      apr<70>s le fichier ou les attributs virtuels concern<72>s. Si la
 | 
						||
      tentative d'inclure le chemin onerror <20>choue, ou si onerror n'est
 | 
						||
      pas sp<73>cifi<66>, c'est le message d'erreur par d<>faut qui sera
 | 
						||
      inclus.</p>
 | 
						||
 | 
						||
      <div class="example"><p><code>
 | 
						||
        # Exemple simple<br />
 | 
						||
        <!--#include virtual="/not-exist.html" onerror="/error.html" -->
 | 
						||
      </code></p></div>
 | 
						||
 | 
						||
      <div class="example"><p><code>
 | 
						||
        # Chemins onerror d<>di<64>s<br />
 | 
						||
        <!--#include virtual="/path-a.html" onerror="/error-a.html" virtual="/path-b.html" onerror="/error-b.html" -->
 | 
						||
      </code></p></div>
 | 
						||
 | 
						||
      </dd>
 | 
						||
      </dl>
 | 
						||
     
 | 
						||
 | 
						||
    <h3><a name="element.printenv" id="element.printenv">L'<27>l<EFBFBD>ment printenv</a></h3>
 | 
						||
      <p>Cette commande affiche la liste en mode texte de toutes les variables et de
 | 
						||
      leurs valeurs. Les caract<63>res sp<73>ciaux sont encod<6F>s <code>entity</code> avant
 | 
						||
      d'<27>tre affich<63>s (se reporter <20> l'<27>l<EFBFBD>ment <code><a href="#element.echo">echo</a></code> pour plus de d<>tails). Cette
 | 
						||
      commande ne comporte pas d'attributs.</p>
 | 
						||
 | 
						||
      <div class="example"><h3>Exemple</h3><p><code>
 | 
						||
        <pre>
 | 
						||
          <!--#printenv -->
 | 
						||
        </pre>
 | 
						||
      </code></p></div>
 | 
						||
     
 | 
						||
 | 
						||
    <h3><a name="element.set" id="element.set">L'<27>l<EFBFBD>ment set</a></h3>
 | 
						||
      <p>Cette commande permet de d<>finir la valeur d'une variable. Les
 | 
						||
      attributs sont :</p>
 | 
						||
 | 
						||
      <dl>
 | 
						||
      <dt><code>var</code></dt>
 | 
						||
      <dd>Le nom de la variable <20> d<>finir.</dd>
 | 
						||
 | 
						||
      <dt><code>value</code></dt>
 | 
						||
      <dd>La valeur <20> affecter <20> la variable.</dd>
 | 
						||
      <dt><code>decoding</code></dt>
 | 
						||
      <dd><p>Sp<53>cifie si Apache doit effectuer un d<>codage dans la
 | 
						||
      variable avant son traitement ult<6C>rieur. La valeur par d<>faut est
 | 
						||
      <code>none</code>, et dans ce cas, aucun d<>codage n'est effectu<74>.
 | 
						||
      Si la valeur est <code>url</code>, <code>urlencoded</code>,
 | 
						||
      <code>base64</code> ou
 | 
						||
      <code>entity</code>, c'est un d<>codage de type URL,
 | 
						||
      application/x-www-form-urlencoded, base64 ou
 | 
						||
      entit<69> HTML qui sera respectivement effectu<74>. Il est possible
 | 
						||
      d'effectuer plusieurs d<>codages en
 | 
						||
      sp<73>cifiant plusieurs valeurs s<>par<61>es par des virgules. Les
 | 
						||
      sp<73>cifications de d<>codages restent valables jusqu'au prochain
 | 
						||
      attribut de d<>codage, ou la fin de l'<27>l<EFBFBD>ment. Pour <20>tre pris en
 | 
						||
      compte, l'attribut de <code>d<>codage</code>
 | 
						||
      doit <em>pr<70>c<EFBFBD>der</em> l'attribut <code>var</code> correspondant.</p>
 | 
						||
      </dd>
 | 
						||
 | 
						||
      <dt><code>encoding</code></dt>
 | 
						||
      <dd><p>Sp<53>cifie la mani<6E>re dont Apache va encoder les caract<63>res
 | 
						||
      sp<73>ciaux que la variable contient avant leur affichage. S'il est
 | 
						||
      d<>fini <20> <code>none</code>, aucun encodage ne sera effectu<74>. Si la
 | 
						||
      valeur est <code>url</code>, <code>urlencoding</code>,
 | 
						||
      <code>base64</code> ou
 | 
						||
      <code>entity</code>, c'est un encodage de type URL,
 | 
						||
      application/x-www-form-urlencoded, base64 ou
 | 
						||
      entit<69> HTML qui sera respectivement effectu<74>. Il est possible de
 | 
						||
      sp<73>cifier plusieurs types d'encodage en les s<>parant par des
 | 
						||
      virgules. La sp<73>cification du type d'encodage fera effet
 | 
						||
      jusqu'<27> la d<>finition d'un nouvel attribut encoding
 | 
						||
      ou la fin de l'<27>l<EFBFBD>ment. Pour produire son effet, l'attribut <code>encoding</code> doit
 | 
						||
      pr<70>c<EFBFBD>der l'attribut <code>var</code> concern<72>. Les encodages sont
 | 
						||
      effectu<74>s apr<70>s les op<6F>rations de d<>codage.</p>
 | 
						||
      </dd>
 | 
						||
 | 
						||
      </dl>
 | 
						||
 | 
						||
      <div class="example"><h3>Exemple</h3><p><code>
 | 
						||
        <!--#set var="category" value="help" -->
 | 
						||
      </code></p></div>
 | 
						||
     
 | 
						||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="includevars" id="includevars">Variables include</a></h2>
 | 
						||
    
 | 
						||
 | 
						||
    <p><3E> l'instar des variables de l'environnement CGI standard, ces
 | 
						||
    variables sont mises <20> la disposition de la commande
 | 
						||
    <code>echo</code>, des op<6F>rateurs conditionnels <code>if</code> et
 | 
						||
    <code>elif</code>, et de tout programme invoqu<71> par le document.</p>
 | 
						||
 | 
						||
    <dl>
 | 
						||
      <dt><code>DATE_GMT</code></dt>
 | 
						||
      <dd>La date GMT (Greenwich Mean Time) courante.</dd>
 | 
						||
 | 
						||
      <dt><code>DATE_LOCAL</code></dt>
 | 
						||
      <dd>La date locale courante.</dd>
 | 
						||
 | 
						||
      <dt><code>DOCUMENT_ARGS</code></dt>
 | 
						||
      <dd>Cette variable contient la cha<68>ne de param<61>tres de la requ<71>te du
 | 
						||
      document SSI actif, ou la cha<68>ne vide si aucune cha<68>ne de param<61>tres de
 | 
						||
      requ<71>te n'est incluse. Pour les sous-requ<71>tes invoqu<71>es par la directive
 | 
						||
      SSI <code>include</code>, <code>QUERY_STRING</code> contiendra la cha<68>ne
 | 
						||
      de param<61>tres de la sous-requ<71>te et <code>DOCUMENT_ARGS</code> la cha<68>ne
 | 
						||
      de param<61>tres du document SSI (disponible <20> partir de la version 2.4.19 du
 | 
						||
      serveur HTTP Apache).</dd>
 | 
						||
 | 
						||
      <dt><code>DOCUMENT_NAME</code></dt>
 | 
						||
      <dd>Le nom de base du fichier demand<6E> par l'utilisateur (sans son
 | 
						||
      chemin).</dd>
 | 
						||
 | 
						||
      <dt><code>DOCUMENT_URI</code></dt>
 | 
						||
      <dd>Le chemin URL (caract<63>res % d<>cod<6F>s) du document demand<6E> par
 | 
						||
      l'utilisateur. Notez que dans le cas d'inclusions de fichiers
 | 
						||
      imbriqu<71>es, il ne s'agit <em>pas</em> de l'URL du document
 | 
						||
      courant. Notez <20>galement que si l'URL est modifi<66>e en interne (par
 | 
						||
      exemple via une directive <code class="directive"><a href="../mod/mod_alias.html#alias">alias</a></code> ou <code class="directive"><a href="../mod/mod_dir.html#directoryindex">directoryindex</a></code>), c'est l'URL modifi<66>e
 | 
						||
      que contiendra la variable.</dd>
 | 
						||
 | 
						||
      <dt><code>LAST_MODIFIED</code></dt>
 | 
						||
      <dd>La date de derni<6E>re modification du document demand<6E> par
 | 
						||
      l'utilisateur.</dd>
 | 
						||
 | 
						||
      <dt><code>QUERY_STRING_UNESCAPED</code></dt>
 | 
						||
      <dd>Si une cha<68>ne d'arguments est pr<70>sente dans la requ<71>te pour le
 | 
						||
      document SSI actif, elle sera affect<63>e <20>
 | 
						||
      cette variable, les caract<63>res %-d<>cod<6F>s, et <20>ventuellement
 | 
						||
      <em><3E>chapp<70>s</em> pour qu'ils ne soient pas interpr<70>t<EFBFBD>s par le
 | 
						||
      shell (les caract<63>res sp<73>ciaux comme <code>&</code>,etc...
 | 
						||
      sont pr<70>c<EFBFBD>d<EFBFBD>s d'anti-slashes). Cette variable n'est pas d<>finie si aucune
 | 
						||
      cha<68>ne d'arguments n'est pr<70>sente. Utilisez <code>DOCUMENT_ARGS</code> si
 | 
						||
      l'<27>chappement des caract<63>res du shell n'est pas souhait<69>.</dd>
 | 
						||
    </dl>
 | 
						||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="substitution" id="substitution">Substitution de variable</a></h2>
 | 
						||
 | 
						||
    <p>Une substitution de variable <20> l'int<6E>rieur d'une cha<68>ne entre
 | 
						||
    guillemets s'effectue dans la plupart des situations o<> cette
 | 
						||
    derni<6E>re peut raisonablement constituer un argument d'une directive
 | 
						||
    SSI. Sont concern<72>es les directives <code>config</code>,
 | 
						||
    <code>exec</code>, <code>flastmod</code>, <code>fsize</code>,
 | 
						||
    <code>include</code>, <code>echo</code>, et <code>set</code>. Si la
 | 
						||
    directive <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code> est d<>finie <20>
 | 
						||
    <code>on</code>, la substitution s'effectue aussi dans les arguments
 | 
						||
    des op<6F>rateurs conditionnels. Vous pouvez ins<6E>rer
 | 
						||
    un signe dollar en tant que caract<63>re litt<74>ral dans une cha<68>ne en
 | 
						||
    utilisant un anti-slash :</p>
 | 
						||
 | 
						||
    <div class="example"><p><code>
 | 
						||
      <!--#set var="cur" value="\$test" -->
 | 
						||
    </code></p></div>
 | 
						||
 | 
						||
    <p>Si une r<>f<EFBFBD>rence de variable doit <20>tre substitu<74>e au beau milieu
 | 
						||
    d'une s<>quence de caract<63>res qui pourrait <20>tre elle-m<>me consid<69>r<EFBFBD>e
 | 
						||
    comme un identifiant valide, l'ambigu<67>t<EFBFBD> peut <20>tre lev<65>e en
 | 
						||
    entourant la r<>f<EFBFBD>rence d'accolades, <20> la mani<6E>re du shell :</p>
 | 
						||
 | 
						||
    <div class="example"><p><code>
 | 
						||
      <!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" -->
 | 
						||
    </code></p></div>
 | 
						||
 | 
						||
    <p>Dans cet exemple, la variable <code>Zed</code> se verra affecter
 | 
						||
    la valeur "<code>X_Y</code>" si <code>REMOTE_HOST</code> et
 | 
						||
    <code>REQUEST_METHOD</code> contiennent respectivement
 | 
						||
    "<code>X</code>" et "<code>Y</code>".</p>
 | 
						||
 | 
						||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="flowctrl" id="flowctrl">El<45>ments de contr<74>le d'inclusion conditionnelle</a></h2>
 | 
						||
    
 | 
						||
 | 
						||
    <p>Les <20>l<EFBFBD>ments de base du contr<74>le d'inclusion conditionnelle sont
 | 
						||
    :</p>
 | 
						||
 | 
						||
    <div class="example"><p><code>
 | 
						||
      <!--#if expr="<var>test_condition</var>" --><br />
 | 
						||
      <!--#elif expr="<var>test_condition</var>" --><br />
 | 
						||
      <!--#else --><br />
 | 
						||
      <!--#endif -->
 | 
						||
    </code></p></div>
 | 
						||
 | 
						||
    <p>L'<27>l<EFBFBD>ment <code>if</code> fonctionne de la m<>me mani<6E>re que
 | 
						||
    la directive if d'un langage de programmation. La condition est
 | 
						||
    <20>valu<6C>e et si le r<>sultat est vrai, le texte qui suit jusqu'au
 | 
						||
    prochain <20>l<EFBFBD>ment <code>elif</code>, <code>else</code> ou
 | 
						||
    <code>endif</code> sera inclus dans le flux de sortie.</p>
 | 
						||
 | 
						||
    <p>Les <20>l<EFBFBD>ments <code>elif</code> ou <code>else</code> permettent
 | 
						||
    d'ins<6E>rer du texte dans le flux de sortie si
 | 
						||
    <var>test_condition</var> s'est r<>v<EFBFBD>l<EFBFBD> faux. Ces <20>l<EFBFBD>ments sont
 | 
						||
    optionnels.</p>
 | 
						||
 | 
						||
    <p>L'<27>l<EFBFBD>ment <code>endif</code> termine le bloc de traitement
 | 
						||
    conditionnel <code>if</code> et est obligatoire.</p>
 | 
						||
 | 
						||
    <p><var>test_condition</var> est une expression bool<6F>enne qui
 | 
						||
    emprunte la syntaxe <a href="../expr.html">ap_expr</a>. La directive
 | 
						||
    <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code>
 | 
						||
    permet de modifier cette syntaxe pour la rendre compatible avec
 | 
						||
    Apache HTTPD 2.2.x.</p>
 | 
						||
 | 
						||
    <p>Le jeu de variables SSI avec l'<27>l<EFBFBD>ment <code>var</code> sont
 | 
						||
    export<72>es vers l'environnement de la requ<71>te et sont accessibles via
 | 
						||
    la fonction <code>reqenv</code>. Pour faire simple, le nom de
 | 
						||
    fonction <code>v</code> est aussi disponible dans le module
 | 
						||
    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>.</p>
 | 
						||
 | 
						||
    <p>Dans l'exemple suivant, "depuis le r<>seau local"  sera affich<63> si
 | 
						||
    l'adresse IP du client appartient au sous-r<>seau 10.0.0.0/8.</p>
 | 
						||
 | 
						||
    <div class="example"><p><code>
 | 
						||
      <!--#if expr='-R "10.0.0.0/8"' --><br />
 | 
						||
      <span class="indent">
 | 
						||
        depuis le r<>seau local<br />
 | 
						||
      </span>
 | 
						||
      <!--#else --><br />
 | 
						||
      <span class="indent">
 | 
						||
        depuis ailleurs<br />
 | 
						||
      </span>
 | 
						||
      <!--#endif -->
 | 
						||
    </code></p></div>
 | 
						||
 | 
						||
    <p>Dans l'exemple suivant, "foo vaut bar" sera affich<63> si la variable
 | 
						||
    <code>foo</code> contient la valeur "bar".</p>
 | 
						||
 | 
						||
    <div class="example"><p><code>
 | 
						||
      <!--#if expr='v("foo") = "bar"' --><br />
 | 
						||
      <span class="indent">
 | 
						||
        foo vaut bar<br />
 | 
						||
      </span>
 | 
						||
      <!--#endif -->
 | 
						||
    </code></p></div>
 | 
						||
 | 
						||
    <div class="note"><h3>Documentation de r<>f<EFBFBD>rence</h3>
 | 
						||
    <p>Voir aussi <a href="../expr.html">Les expressions dans le serveur
 | 
						||
    HTTP Apache</a> pour une r<>f<EFBFBD>rence compl<70>te et des exemples. Les
 | 
						||
    fonctions <em>restricted</em> ne sont pas disponibles dans
 | 
						||
    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>.</p>
 | 
						||
    </div>
 | 
						||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="section">
 | 
						||
<h2><a name="legacyexpr" id="legacyexpr">Syntaxe des expressions h<>rit<69>e</a></h2>
 | 
						||
    
 | 
						||
 | 
						||
    <p>Cette section d<>crit la syntaxe de l'<27>l<EFBFBD>ment <code>#if
 | 
						||
    expr</code> dans le cas o<> la directive <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code> est d<>finie <20>
 | 
						||
    <code>on</code>.</p>
 | 
						||
 | 
						||
    <dl>
 | 
						||
      <dt><code><var>cha<68>ne</var></code></dt>
 | 
						||
      <dd>vrai si <var>cha<68>ne</var> n'est pas vide</dd>
 | 
						||
 | 
						||
      <dt><code><var>-A string</var></code></dt>
 | 
						||
      <dd><p>vrai si l'URL que contient la cha<68>ne est accessible du
 | 
						||
      point de vue de la configuration, faux sinon. Il
 | 
						||
      s'av<61>re utile lorsqu'un lien vers une URL doit <20>tre cach<63> aux
 | 
						||
      utilisateurs qui ne sont pas autoris<69>s <20> voir cette URL. Notez que
 | 
						||
      le test porte sur l'autorisation d'acc<63>s <20> l'URL, et non sur son
 | 
						||
      existence.</p>
 | 
						||
 | 
						||
      <div class="example"><h3>Exemple</h3><p><code>
 | 
						||
        <!--#if expr="-A /prive" --><br />
 | 
						||
        <span class="indent">
 | 
						||
          Cliquez <a href="/prive">ici</a> pour acc<63>der aux
 | 
						||
	  informations priv<69>es.<br />
 | 
						||
        </span>
 | 
						||
        <!--#endif -->
 | 
						||
      </code></p></div>
 | 
						||
      </dd>
 | 
						||
 | 
						||
      <dt><code><var>cha<68>ne1</var> = <var>cha<68>ne2</var><br />
 | 
						||
      <var>cha<68>ne1</var> == <var>cha<68>ne2</var><br />
 | 
						||
      <var>cha<68>ne1</var> != <var>cha<68>ne2</var></code></dt>
 | 
						||
 | 
						||
      <dd><p>Compare <var>cha<68>ne1</var> <20> <var>cha<68>ne2</var>. Si
 | 
						||
      <var>cha<68>ne2</var> est de la forme
 | 
						||
      <code>/<var>cha<68>ne2</var>/</code>, elle est trait<69>e comme une
 | 
						||
      expression rationnelle. Les expressions rationnelles sont
 | 
						||
      impl<70>ment<6E>es par le moteur <a href="http://www.pcre.org">PCRE</a>
 | 
						||
      et poss<73>dent la m<>me syntaxe que celles de <a href="http://www.perl.com">perl 5</a>. Notez que <code>==</code>
 | 
						||
      n'est qu'un alias pour <code>=</code> et se comporte exactement de
 | 
						||
      la m<>me mani<6E>re que ce dernier.</p>
 | 
						||
 | 
						||
      <p>Si vous faites une comparaison directe (<code>=</code> ou
 | 
						||
      <code>==</code>), vous pouvez extraire des parties de l'expression
 | 
						||
      rationnelle. Les parties extraites sont stock<63>es dans les
 | 
						||
      variables sp<73>ciales <code>$1</code> .. <code>$9</code>. L'ensemble
 | 
						||
      de la cha<68>ne correspondant <20> l'expression rationnelle est stock<63>
 | 
						||
      dans la variable sp<73>ciale <code>$0</code>.</p>
 | 
						||
 | 
						||
      <div class="example"><h3>Exemple</h3><p><code>
 | 
						||
        <!--#if expr="$QUERY_STRING = /^sid=([a-zA-Z0-9]+)/" --><br />
 | 
						||
        <span class="indent">
 | 
						||
          <!--#set var="session" value="$1" --><br />
 | 
						||
        </span>
 | 
						||
        <!--#endif -->
 | 
						||
      </code></p></div>
 | 
						||
      </dd>
 | 
						||
 | 
						||
      <dt><code><var>cha<68>ne1</var> < <var>cha<68>ne2</var><br />
 | 
						||
       <var>cha<68>ne1</var> <= <var>cha<68>ne2</var><br />
 | 
						||
       <var>cha<68>ne1</var> > <var>cha<68>ne2</var><br />
 | 
						||
       <var>cha<68>ne1</var> >= <var>cha<68>ne2</var></code></dt>
 | 
						||
 | 
						||
      <dd>Compare <var>cha<68>ne1</var> <20> <var>cha<68>ne2</var>. Notez que les
 | 
						||
      cha<68>nes sont compar<61>es de mani<6E>re <em>litt<74>rale</em> (en utilisant
 | 
						||
      <code>strcmp(3)</code>). Ainsi, la cha<68>ne "100" est inf<6E>rieure <20>
 | 
						||
      "20".</dd>
 | 
						||
 | 
						||
      <dt><code>( <var>test_condition</var> )</code></dt>
 | 
						||
      <dd>vrai si <var>test_condition</var> est vrai</dd>
 | 
						||
 | 
						||
      <dt><code>! <var>test_condition</var></code></dt>
 | 
						||
      <dd>vrai si <var>test_condition</var> est faux</dd>
 | 
						||
 | 
						||
      <dt><code><var>test_condition1</var> &&
 | 
						||
        <var>test_condition2</var></code></dt>
 | 
						||
      <dd>vrai si <var>test_condition1</var> et
 | 
						||
      <var>test_condition2</var> sont tous les deux vrais</dd>
 | 
						||
 | 
						||
      <dt><code><var>test_condition1</var> ||
 | 
						||
        <var>test_condition2</var></code></dt>
 | 
						||
      <dd>vrai si au moins un des tests <var>test_condition1</var> ou
 | 
						||
      <var>test_condition2</var> est vrai</dd>
 | 
						||
    </dl>
 | 
						||
 | 
						||
    <p>"<code>=</code>" et "<code>!=</code>" ont une priorit<69> sup<75>rieure
 | 
						||
    <20> "<code>&&</code>" et "<code>||</code>". "<code>!</code>" a
 | 
						||
    la priorit<69> la plus haute. Ainsi, les deux directives suivantes sont
 | 
						||
    <20>quivalentes :</p>
 | 
						||
 | 
						||
    <div class="example"><p><code>
 | 
						||
      <!--#if expr="$a = test1 && $b = test2" --><br />
 | 
						||
      <!--#if expr="($a = test1) && ($b = test2)" -->
 | 
						||
    </code></p></div>
 | 
						||
 | 
						||
    <p>Les op<6F>rateurs bool<6F>ens <code>&&</code> et
 | 
						||
    <code>||</code> ont la m<>me priorit<69>. Ainsi, si vous voulez
 | 
						||
    augmenter la priorit<69> d'un de ces op<6F>rateurs, vous devez utiliser
 | 
						||
    des parenth<74>ses.</p>
 | 
						||
 | 
						||
    <p>Tout ce qui n'est pas reconnu comme variable ou op<6F>rateur est
 | 
						||
    trait<69> comme une cha<68>ne. Les cha<68>nes peuvent aussi <20>tre entour<75>es
 | 
						||
    d'apostrophes : <code>'cha<68>ne'</code>. Les cha<68>nes sans apostrophe
 | 
						||
    ne peuvent pas contenir d'espaces (espaces ou tabulations) car
 | 
						||
    ceux-ci servent <20> s<>parer certains <20>l<EFBFBD>ments comme les variables. Si
 | 
						||
    plusieurs cha<68>nes se trouvent dans une ligne, elles sont concat<61>n<EFBFBD>es
 | 
						||
    en utilisant des espaces. Ainsi,</p>
 | 
						||
 | 
						||
    <div class="example"><p><code><var>cha<68>ne1</var>    <var>cha<68>ne2</var></code> devient <code><var>cha<68>ne1</var> <var>cha<68>ne2</var></code><br />
 | 
						||
      <br />
 | 
						||
      et<br />
 | 
						||
      <br />
 | 
						||
      <code>'<var>cha<68>ne1</var>    <var>cha<68>ne2</var>'</code> devient <code><var>cha<68>ne1</var>    <var>cha<68>ne2</var></code>.</p></div>
 | 
						||
 | 
						||
    <div class="note"><h3>Optimisation des expressions bool<6F>ennes</h3>
 | 
						||
      <p>Si les expressions atteignent une complexit<69> suffisante pour
 | 
						||
      ralentir les traitements de mani<6E>re significative, vous pouvez
 | 
						||
      essayer de les optimiser en fonction des r<>gles d'<27>valuation :</p>
 | 
						||
      <ul>
 | 
						||
      <li>Les expressions sont <20>valu<6C>es de la gauche vers la droite</li>
 | 
						||
      <li>Les op<6F>rateurs bool<6F>ens binaires (<code>&&</code> et
 | 
						||
      <code>||</code>) font l'objet d'une <20>valuation abr<62>g<EFBFBD>e chaque fois
 | 
						||
      que cela est possible. En d'autres termes, et selon la r<>gle
 | 
						||
      ci-dessus, <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> <20>value tout d'abord la
 | 
						||
      partie gauche de l'expression. Si le r<>sultat de l'<27>valuation de
 | 
						||
      cette partie gauche suffit <20> d<>terminer le r<>sultat final,
 | 
						||
      l'<27>valuation s'arr<72>te ici. Dans le cas contraire, la partie droite
 | 
						||
      est <20>valu<6C>e, et le r<>sultat final tient compte des r<>sultats des
 | 
						||
      <20>valuations des parties gauche et droite.</li>
 | 
						||
      <li>L'<27>valuation abr<62>g<EFBFBD>e est d<>sactiv<69>e tant qu'il reste des
 | 
						||
      expressions r<>guli<6C>res <20> traiter. Ces derni<6E>res doivent <20>tre
 | 
						||
      <20>valu<6C>es afin de d<>finir les variables correspondant aux
 | 
						||
      r<>f<EFBFBD>rences arri<72>res (<code>$1</code> .. <code>$9</code>).</li>
 | 
						||
      </ul>
 | 
						||
      <p>Si vous voulez d<>terminer la mani<6E>re dont une expression est
 | 
						||
      trait<69>e, vous pouvez recompiler <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> en
 | 
						||
      utilisant l'option de compilation <code>-DDEBUG_INCLUDE</code>.
 | 
						||
      Ceci a pour effet d'ins<6E>rer, pour chaque expression interpr<70>t<EFBFBD>e,
 | 
						||
      des informations <20>tiquet<65>es, l'arbre d'interpr<70>tation et la
 | 
						||
      mani<6E>re dont elle est <20>valu<6C>e au sein du flux de sortie envoy<6F> au
 | 
						||
      client.</p>
 | 
						||
    </div>
 | 
						||
 | 
						||
    <div class="note"><h3>Slashes d'<27>chappement dans les expressions
 | 
						||
    rationnelles</h3>
 | 
						||
     <p>Tous les caract<63>res slashes qui ne sont pas des s<>parateurs dans
 | 
						||
     votre expression rationnelle doivent <20>tre <20>chapp<70>s, et ceci sans
 | 
						||
     tenir compte de leur signification du point de vue du moteur
 | 
						||
     d'expressions rationnelles.</p>
 | 
						||
    </div>
 | 
						||
 | 
						||
    <div class="note"><h3>Documentation de r<>f<EFBFBD>rence</h3>
 | 
						||
    <p>Voir le document <a href="../expr.html">Les expressions dans le
 | 
						||
    serveur HTTP Apache</a>, pour une r<>f<EFBFBD>rence compl<70>te et des exemples.</p>
 | 
						||
    </div>
 | 
						||
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="ssiendtag" id="ssiendtag">Directive</a> <a name="SSIEndTag" id="SSIEndTag">SSIEndTag</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Cha<68>ne qui termine l'<27>l<EFBFBD>ment include</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIEndTag <var>tag</var></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>SSIEndTag "-->"</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive permet de modifier la cha<68>ne que
 | 
						||
    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> interpr<70>te comme la fin d'un <20>l<EFBFBD>ment
 | 
						||
    include.</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config">SSIEndTag "%>"</pre>
 | 
						||
 | 
						||
 | 
						||
 | 
						||
<h3>Voir aussi</h3>
 | 
						||
<ul>
 | 
						||
<li><code class="directive"><a href="#ssistarttag">SSIStartTag</a></code></li>
 | 
						||
</ul>
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="ssierrormsg" id="ssierrormsg">Directive</a> <a name="SSIErrorMsg" id="SSIErrorMsg">SSIErrorMsg</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Message d'erreur affich<63> lorsqu'une erreur SSI
 | 
						||
survient</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIErrorMsg <var>message</var></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>SSIErrorMsg "[an error occurred while processing this
 | 
						||
directive]"</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire, .htaccess</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
 | 
						||
</table>
 | 
						||
    <p>La directive <code class="directive">SSIErrorMsg</code> permet de
 | 
						||
    modifier le message d'erreur affich<63> lorsqu'une erreur SSI survient.
 | 
						||
    Pour les serveurs en production, il est recommand<6E> de modifier le
 | 
						||
    message d'erreur par d<>faut en <code>"<!-- Error
 | 
						||
    -->"</code>, de fa<66>on <20> ce que le message ne soit pas
 | 
						||
    pr<70>sent<6E> <20> l'utilisateur.</p>
 | 
						||
 | 
						||
    <p>Cette directive a le m<>me effet que l'<27>l<EFBFBD>ment
 | 
						||
    <code><!--#config errmsg=<var>message</var> --></code>.</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config">SSIErrorMsg "<!-- Error -->"</pre>
 | 
						||
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="ssietag" id="ssietag">Directive</a> <a name="SSIETag" id="SSIETag">SSIETag</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>finit si des en-t<>tes ETags sont g<>n<EFBFBD>r<EFBFBD>s par le serveur.</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIETag on|off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>SSIETag off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire, .htaccess</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Limit</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
 | 
						||
</table>
 | 
						||
      <p>Dans le cas g<>n<EFBFBD>ral, un fichier filtr<74> par
 | 
						||
      <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> peut contenir des <20>l<EFBFBD>ments soit
 | 
						||
      g<>n<EFBFBD>r<EFBFBD>s dynamiquement, soit <20>ventuellement modifi<66>s ind<6E>pendemment
 | 
						||
      du fichier original. En cons<6E>quence, il est demand<6E> par d<>faut au
 | 
						||
      serveur de ne pas g<>n<EFBFBD>rer d'en-t<>te <code>ETag</code> <20> la r<>ponse
 | 
						||
      en ajoutant <code>no-etag</code> aux informations de requ<71>te.</p>
 | 
						||
 | 
						||
      <p>Ce comportement peut <20>tre modifi<66> via la directive
 | 
						||
      <code class="directive">SSIETag</code> qui permet au serveur de g<>n<EFBFBD>rer un
 | 
						||
      en-t<>te <code>ETag</code>. On peut aussi l'utiliser pour la mise
 | 
						||
      en cache de la sortie. Notez qu'un serveur d'arri<72>re-plan ou un
 | 
						||
      g<>n<EFBFBD>rateur de contenu dynamique peut lui-m<>me g<>n<EFBFBD>rer un en-t<>te
 | 
						||
      <code>ETag</code>, en ignorant l'information <code>no-etag</code>,
 | 
						||
      cet en-t<>te <code>ETag</code> <20>tant transmis par
 | 
						||
      <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> sans tenir compte de la d<>finition de
 | 
						||
      la pr<70>sente directive. La directive <code class="directive">SSIETag</code>
 | 
						||
      peut prendre une des valeurs suivantes :</p>
 | 
						||
 | 
						||
      <dl>
 | 
						||
 | 
						||
        <dt><code>off</code></dt>
 | 
						||
        <dd><code>no-etag</code> sera ajout<75> aux informations de
 | 
						||
	requ<71>te, et il sera demand<6E> au serveur de ne pas g<>n<EFBFBD>rer
 | 
						||
	d'en-t<>te <code>ETag</code>. Lorsqu'un serveur ignore la valeur
 | 
						||
	de <code>no-etag</code> et g<>n<EFBFBD>re tout de m<>me un en-t<>te
 | 
						||
	<code>ETag</code>, ce dernier sera respect<63>.</dd>
 | 
						||
 | 
						||
        <dt><code>on</code></dt>
 | 
						||
        <dd>Les en-t<>tes <code>ETag</code> existants seront respect<63>s,
 | 
						||
	et ceux g<>n<EFBFBD>r<EFBFBD>s par le serveur seront ajout<75>s <20> la r<>ponse.</dd>
 | 
						||
 | 
						||
      </dl>
 | 
						||
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="ssilastmodified" id="ssilastmodified">Directive</a> <a name="SSILastModified" id="SSILastModified">SSILastModified</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>finit si des en-t<>tes <code>Last-Modified</code> sont
 | 
						||
g<EFBFBD>n<EFBFBD>r<EFBFBD>s par le serveur.</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSILastModified on|off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>SSILastModified off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire, .htaccess</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Limit</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
 | 
						||
</table>
 | 
						||
      <p>Dans le cas g<>n<EFBFBD>ral, un fichier filtr<74> par
 | 
						||
      <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> peut contenir des <20>l<EFBFBD>ments soit
 | 
						||
      g<>n<EFBFBD>r<EFBFBD>s dynamiquement, soit <20>ventuellement modifi<66>s ind<6E>pendemment
 | 
						||
      du fichier original. En cons<6E>quence, l'en-t<>te
 | 
						||
      <code>Last-Modified</code> est supprim<69> par d<>faut de la r<>ponse.</p>
 | 
						||
 | 
						||
      <p>La directive <code class="directive">SSILastModified</code> permet de
 | 
						||
      modifier ce comportement en faisant en sorte que l'en-t<>te
 | 
						||
      <code>Last-Modified</code> soit respect<63> s'il est d<>j<EFBFBD> pr<70>sent, ou
 | 
						||
      d<>fini dans le cas contraire. On peut aussi l'utiliser pour la mise
 | 
						||
      en cache de la sortie. La directive
 | 
						||
      <code class="directive">SSILastModified</code> peut prendre une des
 | 
						||
      valeurs suivantes :</p>
 | 
						||
 | 
						||
      <dl>
 | 
						||
 | 
						||
        <dt><code>off</code></dt>
 | 
						||
        <dd>L'en-t<>te <code>Last-Modified</code> sera supprim<69> des
 | 
						||
	r<>ponses, <20> moins que la directive <code class="directive"><a href="#xbithack">XBitHack</a></code> ne soit d<>finie <20>
 | 
						||
	<code>full</code> comme d<>crit plus loin.</dd>
 | 
						||
 | 
						||
        <dt><code>on</code></dt>
 | 
						||
        <dd>L'en-t<>te <code>Last-Modified</code> sera respect<63> s'il est
 | 
						||
	d<>j<EFBFBD> pr<70>sent, et ajout<75> <20> la r<>ponse si cette derni<6E>re est un
 | 
						||
	fichier et si l'en-t<>te est manquant. La directive <code class="directive"><a href="#ssilastmodified">SSILastModified</a></code> l'emporte sur
 | 
						||
	la directive <code class="directive"><a href="#xbithack">XBitHack</a></code>.</dd>
 | 
						||
 | 
						||
      </dl>
 | 
						||
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="ssilegacyexprparser" id="ssilegacyexprparser">Directive</a> <a name="SSILegacyExprParser" id="SSILegacyExprParser">SSILegacyExprParser</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active le mode de compatibilit<69> pour les expressions
 | 
						||
conditionnelles.</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSILegacyExprParser on|off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>SSILegacyExprParser off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire, .htaccess</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Limit</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit<69>:</a></th><td>Disponible <20> partir de la version 2.3.13.</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Depuis la version 2.3.13, <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> a adopt<70>
 | 
						||
    la nouvelle syntaxe <a href="../expr.html">ap_expr</a> pour ses
 | 
						||
    expressions conditionnelles dans les <20>l<EFBFBD>ments de contr<74>le de flux
 | 
						||
    <code>#if</code>. Cette directive permet de r<>activer l'<a href="#legacyexpr">ancienne syntaxe</a> qui est compatible avec les
 | 
						||
    versions 2.2.x et ant<6E>rieures d'Apache HTTPD.
 | 
						||
    </p>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="ssistarttag" id="ssistarttag">Directive</a> <a name="SSIStartTag" id="SSIStartTag">SSIStartTag</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Cha<68>ne qui marque le d<>but d'un <20>l<EFBFBD>ment
 | 
						||
include</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIStartTag <var>tag</var></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>SSIStartTag "<!--#"</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive permet de modifier la cha<68>ne que
 | 
						||
    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> interpr<70>te comme le d<>but d'un <20>l<EFBFBD>ment
 | 
						||
    include.</p>
 | 
						||
 | 
						||
    <p>Cette option peut vous <20>tre utile si vous avez deux serveurs qui
 | 
						||
    interpr<70>tent un fichier avec des commandes diff<66>rentes (et
 | 
						||
    <20>ventuellement <20> des moments diff<66>rents).</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config">SSIStartTag "<%"
 | 
						||
SSIEndTag   "%>"</pre>
 | 
						||
 | 
						||
 | 
						||
    <p>Avec l'exemple ci-dessus, qui d<>finit aussi une directive
 | 
						||
    <code class="directive"><a href="#ssiendtag">SSIEndTag</a></code>, vous pourrez
 | 
						||
    inscrire des directives SSI comme dans l'exemple suivant :</p>
 | 
						||
 | 
						||
    <div class="example"><h3>Directives SSI avec marques de d<>but et de fin
 | 
						||
    personnalis<69>es</h3><p><code>
 | 
						||
      <%printenv %>
 | 
						||
    </code></p></div>
 | 
						||
 | 
						||
<h3>Voir aussi</h3>
 | 
						||
<ul>
 | 
						||
<li><code class="directive"><a href="#ssiendtag">SSIEndTag</a></code></li>
 | 
						||
</ul>
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="ssitimeformat" id="ssitimeformat">Directive</a> <a name="SSITimeFormat" id="SSITimeFormat">SSITimeFormat</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration du format d'affichage des dates</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSITimeFormat <var>cha<68>ne de formatage</var></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>SSITimeFormat "%A, %d-%b-%Y %H:%M:%S %Z"</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire, .htaccess</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
 | 
						||
</table>
 | 
						||
<p>Cette directive permet de modifier le format d'affichage des
 | 
						||
variables d'environnement <code>DATE</code>. La <var>cha<68>ne de
 | 
						||
formatage</var> est identique <20> celle de la fonction
 | 
						||
<code>strftime(3)</code> de la biblioth<74>que C standard.</p>
 | 
						||
 | 
						||
    <p>Cette directive a le m<>me effet que l'<27>l<EFBFBD>ment
 | 
						||
    <code><!--#config timefmt=<var>cha<68>ne de formatage</var>
 | 
						||
    --></code>.</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config">SSITimeFormat "%R, %B %d, %Y"</pre>
 | 
						||
 | 
						||
 | 
						||
    <p>Avec l'exemple ci-dessus, les dates seront affich<63>es dans le
 | 
						||
    style "22:26, June 14, 2002".</p>
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="ssiundefinedecho" id="ssiundefinedecho">Directive</a> <a name="SSIUndefinedEcho" id="SSIUndefinedEcho">SSIUndefinedEcho</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Cha<68>ne <20> afficher lorsqu'on tente d'extraire le contenu
 | 
						||
d'une variable non d<>finie</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIUndefinedEcho <var>cha<68>ne</var></code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>SSIUndefinedEcho "(none)"</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire, .htaccess</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
 | 
						||
</table>
 | 
						||
    <p>Cette directive permet de modifier la cha<68>ne affich<63>e par
 | 
						||
    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> lorsqu'on tente d'extraire le contenu
 | 
						||
    d'une variable non d<>finie.</p>
 | 
						||
 | 
						||
    <pre class="prettyprint lang-config">SSIUndefinedEcho "<!-- nondef -->"</pre>
 | 
						||
 | 
						||
 | 
						||
</div>
 | 
						||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | 
						||
<div class="directive-section"><h2><a name="xbithack" id="xbithack">Directive</a> <a name="XBitHack" id="XBitHack">XBitHack</a></h2>
 | 
						||
<table class="directive">
 | 
						||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Interpr<70>te les directives SSI dans les fichiers dont le bit
 | 
						||
d'ex<65>cution est positionn<6E></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>XBitHack on|off|full</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>XBitHack off</code></td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire, .htaccess</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Options</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
 | 
						||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
 | 
						||
</table>
 | 
						||
    <p>La directive <code class="directive">XBitHack</code> permet de contr<74>ler
 | 
						||
    l'interpr<70>tation des documents html standards. Elle n'affecte que
 | 
						||
    les fichiers dont le <a class="glossarylink" href="../glossary.html#type mime" title="voir glossaire">type MIME</a> est
 | 
						||
    <code>text/html</code>. <code class="directive">XBitHack</code> peut prendre
 | 
						||
    les valeurs suivantes :</p>
 | 
						||
 | 
						||
    <dl>
 | 
						||
      <dt><code>off</code></dt>
 | 
						||
      <dd>Aucun traitement particulier pour les fichiers
 | 
						||
      ex<65>cutables.</dd>
 | 
						||
 | 
						||
      <dt><code>on</code></dt>
 | 
						||
      <dd>Tout fichier <code>text/html</code> dont le bit d'ex<65>cution
 | 
						||
      est positionn<6E> pour le propri<72>taire sera trait<69> en tant que
 | 
						||
      document html interpr<70>t<EFBFBD> par le serveur.</dd>
 | 
						||
 | 
						||
      <dt><code>full</code></dt>
 | 
						||
      <dd>Identique <20> <code>on</code>, avec test du bit d'ex<65>cution pour
 | 
						||
      le groupe. Si ce dernier est positionn<6E>, la date de <code>derni<6E>re
 | 
						||
      modification</code> du fichier renvoy<6F> est d<>finie <20> la date de
 | 
						||
      derni<6E>re modification du fichier. Dans le cas contraire, aucune
 | 
						||
      date de derni<6E>re modification n'est renvoy<6F>e. Le positionnement de
 | 
						||
      ce bit permet aux clients et aux mandataires de g<>rer la mise en
 | 
						||
      cache du r<>sultat de la requ<71>te.
 | 
						||
 | 
						||
      <div class="note"><h3>Note</h3>
 | 
						||
      <p>Il est recommand<6E> de n'utiliser l'option full que dans le cas
 | 
						||
      o<> vous <20>tes certain que le bit d'ex<65>cution du groupe est non
 | 
						||
      positionn<6E> pour les scripts SSI qui pourraient effectuer l'<code>#include</code> d'un programme CGI ou bien produire des sorties
 | 
						||
      diff<66>rentes <20> chaque acc<63>s (ou seraient susceptibles d'<27>tre
 | 
						||
      modifi<66>es au cours des requ<71>tes ult<6C>rieures).</p>
 | 
						||
 | 
						||
      <p>Lorsqu'elle est d<>finie <20> <code>on</code>, la directive
 | 
						||
      <code class="directive"><a href="#ssilastmodified">SSILastModified</a></code>
 | 
						||
      l'emporte sur la directive <code class="directive"><a href="#xbithack">XBitHack</a></code>.</p>
 | 
						||
      </div>
 | 
						||
 | 
						||
      </dd>
 | 
						||
    </dl>
 | 
						||
 | 
						||
 | 
						||
</div>
 | 
						||
</div>
 | 
						||
<div class="bottomlang">
 | 
						||
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_include.html" hreflang="en" rel="alternate" title="English"> en </a> |
 | 
						||
<a href="../fr/mod/mod_include.html" title="Fran<61>ais"> fr </a> |
 | 
						||
<a href="../ja/mod/mod_include.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
 | 
						||
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
 | 
						||
<script type="text/javascript"><!--//--><![CDATA[//><!--
 | 
						||
var comments_shortname = 'httpd';
 | 
						||
var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_include.html';
 | 
						||
(function(w, d) {
 | 
						||
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
 | 
						||
        d.write('<div id="comments_thread"><\/div>');
 | 
						||
        var s = d.createElement('script');
 | 
						||
        s.type = 'text/javascript';
 | 
						||
        s.async = true;
 | 
						||
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
 | 
						||
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
 | 
						||
    }
 | 
						||
    else {
 | 
						||
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
 | 
						||
    }
 | 
						||
})(window, document);
 | 
						||
//--><!]]></script></div><div id="footer">
 | 
						||
<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autoris<69> 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/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
 | 
						||
if (typeof(prettyPrint) !== 'undefined') {
 | 
						||
    prettyPrint();
 | 
						||
}
 | 
						||
//--><!]]></script>
 | 
						||
</body></html> |