1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
4        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5              This file is generated from xml source: DO NOT EDIT
6        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7      -->
8<title>mod_include - Serveur Apache HTTP</title>
9<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11<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" />
12<script src="/style/scripts/prettify.min.js" type="text/javascript">
13</script>
14
15<link href="/images/favicon.ico" rel="shortcut icon" /></head>
16<body>
17<div id="page-header">
18<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.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>
19<p class="apache">Serveur Apache HTTP Version 2.4</p>
20<img alt="" src="/images/feather.gif" /></div>
21<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
22<div id="path">
23<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Modules</a></div>
24<div id="page-content">
25<div id="preamble"><h1>Module Apache mod_include</h1>
26<div class="toplang">
27<p><span>Langues Disponibles: </span><a href="/en/mod/mod_include.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
28<a href="/fr/mod/mod_include.html" title="Fran�ais">&nbsp;fr&nbsp;</a> |
29<a href="/ja/mod/mod_include.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a></p>
30</div>
31<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Documents html interpr�t�s par le serveur (Server Side
32Includes ou SSI)</td></tr>
33<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
34<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur�de�Module:</a></th><td>include_module</td></tr>
35<tr><th><a href="module-dict.html#SourceFile">Fichier�Source:</a></th><td>mod_include.c</td></tr></table>
36<h3>Sommaire</h3>
37
38    <p>Ce module fournit un filtre qui va traiter les fichiers avant
39    de les envoyer au client. Le traitement est contr�l� via des
40    commentaires SGML sp�cialement format�s, aussi nomm�s
41    <dfn>�l�ments</dfn>. Ces �l�ments permettent l'insertion
42    conditionnelle de texte, l'inclusion d'autres fichiers ou
43    programmes, ainsi que la d�finition et l'affichage de variables
44    d'environnement.</p>
45</div>
46<div id="quickview"><h3 class="directives">Directives</h3>
47<ul id="toc">
48<li><img alt="" src="/images/down.gif" /> <a href="#ssiendtag">SSIEndTag</a></li>
49<li><img alt="" src="/images/down.gif" /> <a href="#ssierrormsg">SSIErrorMsg</a></li>
50<li><img alt="" src="/images/down.gif" /> <a href="#ssietag">SSIETag</a></li>
51<li><img alt="" src="/images/down.gif" /> <a href="#ssilastmodified">SSILastModified</a></li>
52<li><img alt="" src="/images/down.gif" /> <a href="#ssilegacyexprparser">SSILegacyExprParser</a></li>
53<li><img alt="" src="/images/down.gif" /> <a href="#ssistarttag">SSIStartTag</a></li>
54<li><img alt="" src="/images/down.gif" /> <a href="#ssitimeformat">SSITimeFormat</a></li>
55<li><img alt="" src="/images/down.gif" /> <a href="#ssiundefinedecho">SSIUndefinedEcho</a></li>
56<li><img alt="" src="/images/down.gif" /> <a href="#xbithack">XBitHack</a></li>
57</ul>
58<h3>Sujets</h3>
59<ul id="topics">
60<li><img alt="" src="/images/down.gif" /> <a href="#enabling">Activation des SSI</a></li>
61<li><img alt="" src="/images/down.gif" /> <a href="#pathinfo">PATH_INFO et SSI</a></li>
62<li><img alt="" src="/images/down.gif" /> <a href="#elements">El�ments disponibles</a></li>
63<li><img alt="" src="/images/down.gif" /> <a href="#includevars">Variables include</a></li>
64<li><img alt="" src="/images/down.gif" /> <a href="#substitution">Substitution de variable</a></li>
65<li><img alt="" src="/images/down.gif" /> <a href="#flowctrl">El�ments de contr�le d'inclusion conditionnelle</a></li>
66<li><img alt="" src="/images/down.gif" /> <a href="#legacyexpr">Syntaxe des expressions h�rit�e</a></li>
67</ul><h3>Voir aussi</h3>
68<ul class="seealso">
69<li><code class="directive"><a href="/mod/core.html#options">Options</a></code></li>
70<li><code class="directive"><a href="/mod/core.html#acceptpathinfo">AcceptPathInfo</a></code></li>
71<li><a href="/filter.html">Les filtres</a></li>
72<li><a href="/howto/ssi.html">Tutoriel SSI</a></li>
73</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
74<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
75<div class="section">
76<h2><a name="enabling" id="enabling">Activation des SSI</a></h2>
77    
78
79    <p>Les SSI sont impl�ment�s par le <a href="/filter.html">filtre</a> <code>INCLUDES</code>. Si des
80    documents contenant des directives SSI poss�dent une extension
81    .shtml, les directives suivantes indiqueront � Apache de les
82    interpr�ter et d'assigner le type MIME
83    <code>text/html</code> au document obtenu :</p>
84
85    <pre class="prettyprint lang-config">AddType text/html .shtml
86AddOutputFilter INCLUDES .shtml</pre>
87
88
89    <p>L'option suivante doit �tre d�finie pour les r�pertoires qui
90    contiennent les fichiers shtml (en g�n�ral dans une section
91    <code class="directive"><a href="/mod/core.html#directory">&lt;Directory&gt;</a></code>, mais
92    cette option peut �galement �tre d�finie dans un fichier
93    <code>.htaccess</code> si <code><code class="directive"><a href="/mod/core.html#allowoverride">AllowOverride</a></code> Options</code> a �t� d�fini pour le
94    r�pertoire consid�r�) :</p>
95
96    <pre class="prettyprint lang-config">Options +Includes</pre>
97
98
99    <p>Pour des raisons de compatibilit� ascendante, le <a href="/handler.html">gestionnaire</a>  <code>server-parsed</code>
100    peut aussi activer le filtre INCLUDES. Ainsi, Apache va activer le
101    filtre INCLUDES pour tout document de type MIME
102    <code>text/x-server-parsed-html</code> ou
103    <code>text/x-server-parsed-html3</code> (et le document obtenu aura
104    pour type MIME <code>text/html</code>).</p>
105
106    <p>Pour plus d'informations, voyez notre <a href="/howto/ssi.html">Tutoriel SSI</a>.</p>
107</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
108<div class="section">
109<h2><a name="pathinfo" id="pathinfo">PATH_INFO et SSI</a></h2>
110    
111
112    <p>Les fichiers trait�s dans le cadre des SSI n'acceptent plus par
113    d�faut les requ�tes avec <code>PATH_INFO</code> (les informations
114    relatives au chemin en fin de requ�te). La directive <code class="directive"><a href="/mod/core.html#acceptpathinfo">AcceptPathInfo</a></code> permet de configurer le
115    serveur de fa�on � ce qu'il accepte ce genre de requ�te.</p>
116</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
117<div class="section">
118<h2><a name="elements" id="elements">El�ments disponibles</a></h2>
119    <p>Le document est interpr�t� comme un document HTML, avec des
120    commandes sp�ciales incluses sous forme de commentaires SGML. La
121    syntaxe d'une commande est la suivante : </p>
122
123    <div class="example"><p><code>
124      &lt;!--#<var>�l�ment</var> <var>attribut</var>=<var>valeur</var>
125      <var>attribut</var>=<var>valeur</var> ... --&gt;
126    </code></p></div>
127
128    <p>Les valeurs sont souvent entour�es de guillemets, mais on peut
129    aussi utiliser des apostrophes (<code>'</code>) ou des apostrophes
130    inverses (<code>`</code>). De nombreuses commandes n'acceptent
131    qu'une seule paire attribut-valeur. Notez que le terminateur de
132    commentaire (<code>--&gt;</code>) doit �tre pr�c�d� d'un espace afin
133    d'�tre s�r qu'il ne soit pas consid�r� comme un �l�ment de commande
134    SSI. Notez aussi que le d�limiteur de d�but <code>&lt;!--#</code>
135    est <em>un</em> �l�ment de commande et ne doit donc pas contenir
136    d'espace.</p>
137
138    <p>La table suivante contient la liste des �l�ments autoris�s :</p>
139
140    <table class="bordered">
141    <tr><th>El�ment</th><th>Description</th></tr>
142    <tr><td><code><a href="#element.config">config</a></code></td>
143        <td>configure les formats de sortie</td></tr>
144    <tr><td><code><a href="#element.echo">echo</a></code></td>
145        <td>affiche le contenu de variables</td></tr>
146    <tr><td><code><a href="#element.exec">exec</a></code></td>
147        <td>ex�cute des programmes externes</td></tr>
148    <tr><td><code><a href="#element.fsize">fsize</a></code></td>
149        <td>affiche la taille d'un fichier</td></tr>
150    <tr><td><code><a href="#element.flastmod">flastmod</a></code></td>
151        <td>affiche la date de derni�re modification d'un fichier</td></tr>
152    <tr><td><code><a href="#element.include">include</a></code></td>
153        <td>inclut un fichier</td></tr>
154    <tr><td><code><a href="#element.printenv">printenv</a></code></td>
155        <td>affiche toutes les variables disponibles</td></tr>
156    <tr><td><code><a href="#element.set">set</a></code></td>
157        <td>d�finit la valeur d'une variable</td></tr>
158    </table>
159
160    <p>Les �l�ments SSI peuvent �tre d�finis par d'autres modules que
161    <code class="module"><a href="/mod/mod_include.html">mod_include</a></code>. � ce titre, l'�l�ment <code><a href="#element.exec">exec</a></code> est fourni par
162    <code class="module"><a href="/mod/mod_cgi.html">mod_cgi</a></code>, et ne sera disponible que si ce module est
163    charg�.</p>
164
165    <h3><a name="element.config" id="element.config">L'�l�ment config</a></h3>
166      <p>Cette commande contr�le divers aspects de l'interpr�tation. Les
167      attributs valides sont :</p>
168
169      <dl>
170      <dt><code>echomsg</code> (<em>Versions 2.1 et sup�rieures
171      d'Apache</em>)</dt>
172      <dd><p>La valeur est un message qui sera envoy� au client si
173      l'�l�ment <code><a href="#element.echo">echo</a></code> tente
174      d'afficher le contenu d'une variable non d�finie. Cet attribut
175      l'emporte sur toute directive <code class="directive"><a href="#ssiundefinedecho">SSIUndefinedEcho</a></code>.</p>
176
177      <div class="example"><p><code>
178        &lt;!--#config errmsg="[Valeur non d�finie]" --&gt;
179      </code></p></div>
180      </dd>
181
182      <dt><code>errmsg</code></dt>
183      <dd><p>La valeur est un message qui sera envoy� au client si une
184      erreur survient lors de l'interpr�tation du document. Cet attribut
185      l'emporte sur toute directive <code class="directive"><a href="#ssierrormsg">SSIErrorMsg</a></code>.</p>
186
187      <div class="example"><p><code>
188       &lt;!--#config errmsg="[Zut, quelque chose s'est mal pass�.]" --&gt;
189      </code></p></div>
190      </dd>
191
192      <dt><code>sizefmt</code></dt>
193      <dd><p>La valeur d�finit l'unit� employ�e lors de l'affichage de la
194      taille d'un fichier. Les valeurs possibles sont <code>bytes</code>
195      pour une taille en octets, ou <code>abbrev</code> pour une taille
196      en Ko ou Mo selon son importance ; par exemple, une taille de 1024
197      octets sera affich�e sous la forme "1K".</p>
198
199      <div class="example"><p><code>
200      &lt;!--#config sizefmt="abbrev" --&gt;
201      </code></p></div>
202
203      </dd>
204
205      <dt><code>timefmt</code></dt>
206      <dd><p>La valeur est une cha�ne que pourra utiliser la fonction de la
207      biblioth�que standard <code>strftime(3)</code> lors de l'affichage
208      des dates.</p>
209
210      <div class="example"><p><code>
211      &lt;!--#config timefmt=""%R, %B %d, %Y"" --&gt;
212      </code></p></div>
213
214      </dd>
215      </dl>
216     
217
218    <h3><a name="element.echo" id="element.echo">L'�l�ment echo</a></h3>
219      <p>Cette commande affiche le contenu d'une des <a href="#includevars">variables include</a> d�finies ci-dessous. Si
220      la variable n'est pas d�finie, le r�sultat est d�termin� par la
221      valeur de la directive <code class="directive"><a href="#ssiundefinedecho">SSIUndefinedEcho</a></code>. Le format d'affichage des dates est
222      d�fini par l'attribut <code>timefmt</code> de la commande
223      config.</p>
224
225      <p>Attributs:</p>
226
227      <dl>
228      <dt><code>var</code></dt>
229      <dd>La valeur est le nom de la variable � afficher.</dd>
230
231      <dt><code>decoding</code></dt>
232      <dd><p>Sp�cifie si Apache doit effectuer un d�codage dans la
233      variable avant son traitement ult�rieur. La valeur par d�faut est
234      <code>none</code>, et dans ce cas, aucun d�codage n'est effectu�.
235      Si la valeur est <code>url</code>, un d�codage de type URL sera
236      effectu� (il s'agit du codage de type %-encoding utilis� dans les
237      URLs des liens, etc...). Si la valeur est <code>urlencoded</code>,
238      c'est un d�codage des �l�ments de type
239      application/x-www-form-urlencode (que l'on trouve dans les cha�nes
240      de param�tres) qui sera effectu�. Si la valeur est
241      <code>base64</code>, un
242      decodage de type base64 sera effectu�, et si elle est
243      <code>entity</code>, c'est un d�codage des entit�s HTML qui sera
244      effectu�. Ce d�codage est effectu� avant tout codage ult�rieur de
245      la variable. Il est possible d'effectuer plusieurs d�codages en
246      sp�cifiant plusieurs valeurs s�par�es par des virgules. Les
247      sp�cifications de d�codages restent valables jusqu'au prochain
248      attribut de d�codage, ou la fin de l'�l�ment.</p>
249
250      <p>Pour �tre pris en compte, l'attribut de <code>d�codage</code>
251      doit <em>pr�c�der</em> l'attribut <code>var</code> correspondant.</p>
252      </dd>
253
254      <dt><code>encoding</code></dt>
255      <dd><p>Sp�cifie la mani�re dont Apache va coder les caract�res
256      sp�ciaux que la variable contient avant leur affichage. S'il est
257      d�fini � <code>none</code>, aucun codage ne sera effectu�. S'il
258      est d�fini � <code>url</code>, un codage de type URL sera effectu�
259      (aussi connu sous le nom de codage avec caract�res % , il convient
260      pour les URLS des liens, etc...). S'il est d�fini �
261      <code>urlencoded</code>, c'est un codage compatible
262      application/x-www-form-urlencoded qui sera effectu� (� utiliser
263      dans les cha�nes de param�tres). S'il est d�fini �
264      <code>base64</code>, c'est un encodage de type base64 qui sera
265      effectu�. Au d�but d'un �l�ment
266      <code>echo</code>, la valeur par d�faut est d�finie �
267      <code>entity</code>, ce qui correspond � un codage de type entit�
268      (codage qui convient pour un �l�ment HTML de type bloc, comme le
269      paragraphe d'un texte). Cette valeur par d�faut peut �tre modifi�e
270      en ajoutant un attribut <code>encoding</code>, qui fera effet
271      jusqu'� la d�finition d'un nouvel attribut <code>encoding</code>
272      ou la fin de l'�l�ment echo.</p>
273
274      <p>Pour produire son effet, l'attribut <code>encoding</code> doit
275      pr�c�der l'attribut <code>var</code> concern�.</p>
276
277      <div class="warning">
278        Afin de pr�venir les attaques de type cross-site scripting, il
279	est recommand� de <em>toujours</em> encoder les donn�es fournies
280	par les utilisateurs.
281      </div>
282
283      <div class="example"><h3>Example</h3><p><code>
284        &lt;!--#echo encoding="entity" var="QUERY_STRING" --&gt;
285      </code></p></div>
286      </dd>
287      </dl>
288     
289
290    <h3><a name="element.exec" id="element.exec">L'�l�ment exec</a></h3>
291      <p>La commande <code>exec</code> ex�cute la commande shell ou le
292      script sp�cifi�. Elle n�cessite le chargement du module
293      <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
294      d�finie, cette commande est d�sactiv�e. Les attributs disponibles
295      sont :</p>
296
297      <dl>
298      <dt><code>cgi</code></dt>
299      <dd><p>La valeur sp�cifie un chemin URL vers le script CGI (encod�
300      avec caract�res %). Si le chemin ne commence pas par un slash (/),
301      il est consid�r� comme relatif au document courant. Le document
302      r�f�renc� par ce chemin est invoqu� en tant que script CGI, m�me
303      s'il n'est pas cens� �tre reconnu comme tel par le serveur. Les
304      scripts CGI doivent cependant �tre activ�s dans le r�pertoire qui
305      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>
306
307      <p>Le <code>PATH_INFO</code> et la cha�ne d'arguments
308      (<code>QUERY_STRING</code>) de la requ�te originale du client sont
309      fournis au script CGI ; ils <em>ne peuvent pas</em> �tre sp�cifi�s
310      dans le chemin de l'URL. Le script disposera des variables include
311      en plus de l'environnement standard <a href="mod_cgi.html">CGI</a>.</p>
312
313      <div class="example"><h3>Exemple</h3><p><code>
314        &lt;!--#exec cgi="/cgi-bin/exemple.cgi" --&gt;
315      </code></p></div>
316
317      <p>Si, � la place d'un flux de sortie, le script renvoie un
318      en-t�te <code>Location:</code>, ce dernier sera traduit en ancrage
319      HTML.</p>
320
321      <p>L'�l�ment <code><a href="#includevirtual">include
322      virtual</a></code> doit �tre pr�f�r� � <code>exec cgi</code>. En
323      particulier, si vous devez transmettre des arguments
324      suppl�mentaires � un programme CGI en utilisant la cha�ne
325      d'arguments de la requ�te, c'est impossible avec <code>exec
326      cgi</code>, mais vous pouvez y parvenir avec <code>include
327      virtual</code> comme suit :</p>
328
329      <div class="example"><p><code>
330        &lt;!--#include virtual="/cgi-bin/exemple.cgi?argument=valeur" --&gt;
331      </code></p></div>
332      </dd>
333
334      <dt><code>cmd</code></dt>
335      <dd><p>Le serveur va ex�cuter la commande fournie en utilisant
336      <code>/bin/sh</code>. La commande dispose des <a href="#includevars">variables include</a>, en plus du jeu habituel
337      de variables CGI.</p>
338
339      <p>Il est toujours pr�f�rable d'utiliser <code><a href="#includevirtual">#include virtual</a></code> � la place de
340      <code>#exec cgi</code> ou <code>#exec cmd</code>. <code>#include
341      virtual</code> utilise le m�canisme standard des sous-requ�tes
342      d'Apache pour inclure des fichiers ou des scripts. Il a fait
343      l'objet de tests plus approfondis et sa maintenance est mieux
344      suivie.</p>
345
346      <p>De plus, sur certaines plate-formes, comme Win32, et sous unix,
347      si l'on utilise <a href="/suexec.html">suexec</a>, il est
348      impossible de transmettre des arguments � une commande dans une
349      directive <code>exec</code>, � moins d'ins�rer des espaces dans la
350      commande. Ainsi, alors que ce qui suit fonctionnera sous unix avec
351      une configuration sans suexec, l'effet produit ne sera pas celui
352      d�sir� sous Win32, ou dans le cas de l'utilisation de suexec
353      :</p>
354
355      <div class="example"><p><code>
356        &lt;!--#exec cmd="perl /chemin/vers/script_perl arg1 arg2" --&gt;
357      </code></p></div>
358      </dd>
359      </dl>
360     
361
362    <h3><a name="element.fsize" id="element.fsize">L'�l�ment fsize</a></h3>
363      <p>Cette commande permet d'afficher la taille du fichier sp�cifi�
364      en fonction des sp�cifications de format de <code>sizefmt</code>.
365      Attributs :</p>
366
367      <dl>
368      <dt><code>file</code></dt>
369      <dd>La valeur est le chemin du fichier, relatif au r�pertoire
370      contenant le document en cours d'interpr�tation.
371
372      <div class="example"><p><code>
373        Ce fichier a une taille de &lt;!--#fsize file="mod_include.html"
374	--&gt; octets.
375    </code></p></div>
376
377    La valeur de <code>file</code> ne peut pas faire r�f�rence � un
378    fichier situ� � un niveau sup�rieur de l'arborescence du r�pertoire
379    courant ou en dehors de la racine des documents ; il ne peut donc
380    ni commencer par un slash, ni contenir la s�quence de caract�res
381    <code>../</code>. Si c'est le cas, le message d'erreur <code>The
382    given path was above the root path</code> sera renvoy�.
383      </dd>
384
385      <dt><code>virtual</code></dt>
386      <dd>La valeur est un chemin URL (cod� avec caract�res %). S'il ne
387      commence pas par un slash (/), il est consid�r� comme relatif au
388      document courant. Notez que cette commande n'affiche <em>pas</em>
389      la taille de la sortie d'un programme CGI, mais la taille du
390      programme CGI lui-m�me.</dd>
391      </dl>
392
393      <div class="example"><p><code>
394        Ce fichier a une taille de &lt;!--#fsize
395	virtual="/docs/mod/mod_include.html" --&gt; octets.
396    </code></p></div>
397
398      <p>Notez que dans la plupart des cas, ces deux attributs sont
399      identiques. Cependant, l'attribut <code>file</code> ne respecte
400      pas les aliases URL-space.</p>
401     
402
403    <h3><a name="element.flastmod" id="element.flastmod">L'�l�ment flastmod</a></h3>
404      <p>Cette commande permet d'afficher la date de derni�re
405      modification du fichier sp�cifi�, en fonction des sp�cifications
406      de format de <code>timefmt</code>. Les attributs sont les m�mes
407      que ceux de la commande <code><a href="#element.fsize">fsize</a></code>.</p>
408     
409
410    <h3><a name="element.include" id="element.include">L'�l�ment include</a></h3>
411      <p>Cette commande permet d'ins�rer le texte d'un autre document ou
412      fichier dans le fichier en cours d'interpr�tation. Tout fichier
413      inclus est soumis au contr�le d'acc�s habituel. Si <a href="core.html#options">Options</a> <code>IncludesNOEXEC</code>
414      est d�fini pour le r�pertoire contenant le fichier
415      interpr�t�, seuls les documents poss�dant un
416      <a class="glossarylink" href="/glossary.html#type mime" title="voir glossaire">type MIME</a> de type texte
417      (<code>text/plain</code>, <code>text/html</code>, etc...) seront
418      inclus. Les scripts CGI, quant � eux, sont invoqu�s de mani�re
419      habituelle en utilisant l'URL compl�te fournie avec la commande, y
420      compris toute cha�ne d'arguments �ventuelle.</p>
421
422      <p>Un attribut d�finit le chemin du document � inclure, et peut
423      appara�tre plusieurs fois dans l'�l�ment � inclure ; en retour, pour
424      chaque attribut fourni � la commande include, une inclusion est
425      effectu�e. Les attributs disponibles sont :</p>
426
427      <dl>
428      <dt><code>file</code></dt>
429      <dd>La valeur est un chemin relatif au r�pertoire contenant le
430      fichier en cours d'interpr�tation. Elle ne peut ni contenir
431      <code>../</code>, ni �tre un chemin absolu. Ainsi, vous ne pouvez
432      pas inclure de fichiers situ�s en dehors de l'arborescence du
433      site web ou dans un niveau sup�rieur � celui du fichier courant
434      dans cette arborescence. Il est toujours pr�f�rable d'utiliser
435      l'attribut <code>virtual</code>.</dd>
436
437      <dt><code><a id="includevirtual" name="includevirtual">virtual</a></code></dt>
438      <dd><p>La valeur est un chemin URL (cod� avec caract�res %). L'URL
439      ne peut contenir qu'un chemin et une cha�ne d'arguments
440      �ventuelle, � l'exclusion de tout protocole ou nom d'h�te. S'il ne
441      commence pas par un slash (/), il est consid�r� comme relatif au
442      document courant.</p>
443
444      <p>Une URL est construite � partir de l'attribut, et la sortie que
445      renverrait le serveur si l'URL �tait acc�d�e par le client est
446      incluse dans la sortie interpr�t�e. Les inclusions de fichiers
447      peuvent ainsi �tre imbriqu�es.</p>
448
449      <p>Si l'URL sp�cifi�e correspond � un programme CGI, le programme
450      sera ex�cut�, et son flux de sortie ins�r� � la place de la
451      directive dans le fichier interpr�t�. Vous pouvez ins�rer une
452      cha�ne d'arguments dans une URL correspond � un programme CGI
453      :</p>
454
455      <div class="example"><p><code>
456        &lt;!--#include virtual="/cgi-bin/exemple.cgi?argument=valeur" --&gt;
457      </code></p></div>
458
459      <p><code>include virtual</code> doit �tre pr�f�r� � <code>exec
460      cgi</code> pour inclure le flux de sortie d'un programme CGI dans
461      un document HTML.</p>
462
463      <p>Si la directive <code class="directive"><a href="/mod/mod_request.html#keptbodysize">KeptBodySize</a></code> est correctement
464      d�finie et valide pour le fichier inclus, les tentatives de
465      requ�tes POST vers le document HTML qui inclut des fichiers seront
466      transmises aux sous-requ�tes en tant que requ�tes POST
467      elles-m�mes. Sans cette directive, toutes les sous-requ�tes sont
468      trait�es en tant que requ�tes GET.</p>
469
470      </dd>
471
472      <dt><code>onerror</code></dt>
473      <dd><p>La valeur est un chemin-URL (cod�-%) qui est affich� si une
474      tentative pr�c�dente d'inclure un fichier ou un attribut virtuel a
475      �chou�. Pour produire son effet, cet attribut doit �tre sp�cifi�
476      apr�s le fichier ou les attributs virtuels concern�s. Si la
477      tentative d'inclure le chemin onerror �choue, ou si onerror n'est
478      pas sp�cifi�, c'est le message d'erreur par d�faut qui sera
479      inclus.</p>
480
481      <div class="example"><p><code>
482        # Exemple simple<br />
483        &lt;!--#include virtual="/not-exist.html" onerror="/error.html" --&gt;
484      </code></p></div>
485
486      <div class="example"><p><code>
487        # Chemins onerror d�di�s<br />
488        &lt;!--#include virtual="/path-a.html" onerror="/error-a.html" virtual="/path-b.html" onerror="/error-b.html" --&gt;
489      </code></p></div>
490
491      </dd>
492      </dl>
493     
494
495    <h3><a name="element.printenv" id="element.printenv">L'�l�ment printenv</a></h3>
496      <p>Cette commande affiche la liste en mode texte de toutes les variables et de
497      leurs valeurs. Les caract�res sp�ciaux sont encod�s <code>entity</code> avant
498      d'�tre affich�s (se reporter � l'�l�ment <code><a href="#element.echo">echo</a></code> pour plus de d�tails). Cette
499      commande ne comporte pas d'attributs.</p>
500
501      <div class="example"><h3>Exemple</h3><p><code>
502        &lt;pre&gt;
503          &lt;!--#printenv --&gt;
504        &lt;/pre&gt;
505      </code></p></div>
506     
507
508    <h3><a name="element.set" id="element.set">L'�l�ment set</a></h3>
509      <p>Cette commande permet de d�finir la valeur d'une variable. Les
510      attributs sont :</p>
511
512      <dl>
513      <dt><code>var</code></dt>
514      <dd>Le nom de la variable � d�finir.</dd>
515
516      <dt><code>value</code></dt>
517      <dd>La valeur � affecter � la variable.</dd>
518      <dt><code>decoding</code></dt>
519      <dd><p>Sp�cifie si Apache doit effectuer un d�codage dans la
520      variable avant son traitement ult�rieur. La valeur par d�faut est
521      <code>none</code>, et dans ce cas, aucun d�codage n'est effectu�.
522      Si la valeur est <code>url</code>, <code>urlencoded</code>,
523      <code>base64</code> ou
524      <code>entity</code>, c'est un d�codage de type URL,
525      application/x-www-form-urlencoded, base64 ou
526      entit� HTML qui sera respectivement effectu�. Il est possible
527      d'effectuer plusieurs d�codages en
528      sp�cifiant plusieurs valeurs s�par�es par des virgules. Les
529      sp�cifications de d�codages restent valables jusqu'au prochain
530      attribut de d�codage, ou la fin de l'�l�ment. Pour �tre pris en
531      compte, l'attribut de <code>d�codage</code>
532      doit <em>pr�c�der</em> l'attribut <code>var</code> correspondant.</p>
533      </dd>
534
535      <dt><code>encoding</code></dt>
536      <dd><p>Sp�cifie la mani�re dont Apache va encoder les caract�res
537      sp�ciaux que la variable contient avant leur affichage. S'il est
538      d�fini � <code>none</code>, aucun encodage ne sera effectu�. Si la
539      valeur est <code>url</code>, <code>urlencoding</code>,
540      <code>base64</code> ou
541      <code>entity</code>, c'est un encodage de type URL,
542      application/x-www-form-urlencoded, base64 ou
543      entit� HTML qui sera respectivement effectu�. Il est possible de
544      sp�cifier plusieurs types d'encodage en les s�parant par des
545      virgules. La sp�cification du type d'encodage fera effet
546      jusqu'� la d�finition d'un nouvel attribut encoding
547      ou la fin de l'�l�ment. Pour produire son effet, l'attribut <code>encoding</code> doit
548      pr�c�der l'attribut <code>var</code> concern�. Les encodages sont
549      effectu�s apr�s les op�rations de d�codage.</p>
550      </dd>
551
552      </dl>
553
554      <div class="example"><h3>Exemple</h3><p><code>
555        &lt;!--#set var="category" value="help" --&gt;
556      </code></p></div>
557     
558</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
559<div class="section">
560<h2><a name="includevars" id="includevars">Variables include</a></h2>
561    
562
563    <p>� l'instar des variables de l'environnement CGI standard, ces
564    variables sont mises � la disposition de la commande
565    <code>echo</code>, des op�rateurs conditionnels <code>if</code> et
566    <code>elif</code>, et de tout programme invoqu� par le document.</p>
567
568    <dl>
569      <dt><code>DATE_GMT</code></dt>
570      <dd>La date GMT (Greenwich Mean Time) courante.</dd>
571
572      <dt><code>DATE_LOCAL</code></dt>
573      <dd>La date locale courante.</dd>
574
575      <dt><code>DOCUMENT_NAME</code></dt>
576      <dd>Le nom de base du fichier demand� par l'utilisateur (sans son
577      chemin).</dd>
578
579      <dt><code>DOCUMENT_URI</code></dt>
580      <dd>Le chemin URL (caract�res % d�cod�s) du document demand� par
581      l'utilisateur. Notez que dans le cas d'inclusions de fichiers
582      imbriqu�es, il ne s'agit <em>pas</em> de l'URL du document
583      courant. Notez �galement que si l'URL est modifi�e en interne (par
584      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�e
585      que contiendra la variable.</dd>
586
587      <dt><code>LAST_MODIFIED</code></dt>
588      <dd>La date de derni�re modification du document demand� par
589      l'utilisateur.</dd>
590
591      <dt><code>QUERY_STRING_UNESCAPED</code></dt>
592      <dd>Si une cha�ne d'arguments est pr�sente, elle sera affect�e �
593      cette variable, les caract�res % d�cod�s, et �ventuellement
594      <em>�chapp�s</em> pour qu'ils ne soient pas interpr�t�s par le
595      shell (les caract�res sp�ciaux comme <code>&amp;</code>,etc...
596      sont pr�c�d�s d'anti-slashes).</dd>
597    </dl>
598</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
599<div class="section">
600<h2><a name="substitution" id="substitution">Substitution de variable</a></h2>
601
602    <p>Une substitution de variable � l'int�rieur d'une cha�ne entre
603    guillemets s'effectue dans la plupart des situations o� cette
604    derni�re peut raisonablement constituer un argument d'une directive
605    SSI. Sont concern�es les directives <code>config</code>,
606    <code>exec</code>, <code>flastmod</code>, <code>fsize</code>,
607    <code>include</code>, <code>echo</code>, et <code>set</code>. Si la
608    directive <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code> est d�finie �
609    <code>on</code>, la substitution s'effectue aussi dans les arguments
610    des op�rateurs conditionnels. Vous pouvez ins�rer
611    un signe dollar en tant que caract�re litt�ral dans une cha�ne en
612    utilisant un anti-slash :</p>
613
614    <div class="example"><p><code>
615      &lt;!--#set var="cur" value="\$test" --&gt;
616    </code></p></div>
617
618    <p>Si une r�f�rence de variable doit �tre substitu�e au beau milieu
619    d'une s�quence de caract�res qui pourrait �tre elle-m�me consid�r�e
620    comme un identifiant valide, l'ambigu�t� peut �tre lev�e en
621    entourant la r�f�rence d'accolades, � la mani�re du shell :</p>
622
623    <div class="example"><p><code>
624      &lt;!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" --&gt;
625    </code></p></div>
626
627    <p>Dans cet exemple, la variable <code>Zed</code> se verra affecter
628    la valeur "<code>X_Y</code>" si <code>REMOTE_HOST</code> et
629    <code>REQUEST_METHOD</code> contiennent respectivement
630    "<code>X</code>" et "<code>Y</code>".</p>
631
632</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
633<div class="section">
634<h2><a name="flowctrl" id="flowctrl">El�ments de contr�le d'inclusion conditionnelle</a></h2>
635    
636
637    <p>Les �l�ments de base du contr�le d'inclusion conditionnelle sont
638    :</p>
639
640    <div class="example"><p><code>
641      &lt;!--#if expr="<var>test_condition</var>" --&gt;<br />
642      &lt;!--#elif expr="<var>test_condition</var>" --&gt;<br />
643      &lt;!--#else --&gt;<br />
644      &lt;!--#endif --&gt;
645    </code></p></div>
646
647    <p>L'�l�ment <code>if</code> fonctionne de la m�me mani�re que
648    la directive if d'un langage de programmation. La condition est
649    �valu�e et si le r�sultat est vrai, le texte qui suit jusqu'au
650    prochain �l�ment <code>elif</code>, <code>else</code> ou
651    <code>endif</code> sera inclus dans le flux de sortie.</p>
652
653    <p>Les �l�ments <code>elif</code> ou <code>else</code> permettent
654    d'ins�rer du texte dans le flux de sortie si
655    <var>test_condition</var> s'est r�v�l� faux. Ces �l�ments sont
656    optionnels.</p>
657
658    <p>L'�l�ment <code>endif</code> termine le bloc de traitement
659    conditionnel <code>if</code> et est obligatoire.</p>
660
661    <p><var>test_condition</var> est une expression bool�enne qui
662    emprunte la syntaxe <a href="/expr.html">ap_expr</a>. La directive
663    <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code>
664    permet de modifier cette syntaxe pour la rendre compatible avec
665    Apache HTTPD 2.2.x.</p>
666
667    <p>Le jeu de variables SSI avec l'�l�ment <code>var</code> sont
668    export�es vers l'environnement de la requ�te et sont accessibles via
669    la fonction <code>reqenv</code>. Pour faire simple, le nom de
670    fonction <code>v</code> est aussi disponible dans le module
671    <code class="module"><a href="/mod/mod_include.html">mod_include</a></code>.</p>
672
673    <p>Dans l'exemple suivant, "depuis le r�seau local"  sera affich� si
674    l'adresse IP du client appartient au sous-r�seau 10.0.0.0/8.</p>
675
676    <div class="example"><p><code>
677      &lt;!--#if expr='-R "10.0.0.0/8"' --&gt;<br />
678      <span class="indent">
679        depuis le r�seau local<br />
680      </span>
681      &lt;!--#else --&gt;<br />
682      <span class="indent">
683        depuis ailleurs<br />
684      </span>
685      &lt;!--#endif --&gt;
686    </code></p></div>
687
688    <p>Dans l'exemple suivant, "foo vaut bar" sera affich� si la variable
689    <code>foo</code> contient la valeur "bar".</p>
690
691    <div class="example"><p><code>
692      &lt;!--#if expr='v("foo") = "bar"' --&gt;<br />
693      <span class="indent">
694        foo vaut bar<br />
695      </span>
696      &lt;!--#endif --&gt;
697    </code></p></div>
698
699    <div class="note"><h3>Documentation de r�f�rence</h3>
700    <p>Voir aussi <a href="/expr.html">Les expressions dans le serveur
701    HTTP Apache</a> pour une r�f�rence compl�te et des exemples. Les
702    fonctions <em>restricted</em> ne sont pas disponibles dans
703    <code class="module"><a href="/mod/mod_include.html">mod_include</a></code>.</p>
704    </div>
705</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
706<div class="section">
707<h2><a name="legacyexpr" id="legacyexpr">Syntaxe des expressions h�rit�e</a></h2>
708    
709
710    <p>Cette section d�crit la syntaxe de l'�l�ment <code>#if
711    expr</code> dans le cas o� la directive <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code> est d�finie �
712    <code>on</code>.</p>
713
714    <dl>
715      <dt><code><var>cha�ne</var></code></dt>
716      <dd>vrai si <var>cha�ne</var> n'est pas vide</dd>
717
718      <dt><code><var>-A string</var></code></dt>
719      <dd><p>vrai si l'URL que contient la cha�ne est accessible du
720      point de vue de la configuration, faux sinon. Il
721      s'av�re utile lorsqu'un lien vers une URL doit �tre cach� aux
722      utilisateurs qui ne sont pas autoris�s � voir cette URL. Notez que
723      le test porte sur l'autorisation d'acc�s � l'URL, et non sur son
724      existence.</p>
725
726      <div class="example"><h3>Exemple</h3><p><code>
727        &lt;!--#if expr="-A /prive" --&gt;<br />
728        <span class="indent">
729          Cliquez &lt;a href="/prive"&gt;ici&lt;/a&gt; pour acc�der aux
730	  informations priv�es.<br />
731        </span>
732        &lt;!--#endif --&gt;
733      </code></p></div>
734      </dd>
735
736      <dt><code><var>cha�ne1</var> = <var>cha�ne2</var><br />
737      <var>cha�ne1</var> == <var>cha�ne2</var><br />
738      <var>cha�ne1</var> != <var>cha�ne2</var></code></dt>
739
740      <dd><p>Compare <var>cha�ne1</var> � <var>cha�ne2</var>. Si
741      <var>cha�ne2</var> est de la forme
742      <code>/<var>cha�ne2</var>/</code>, elle est trait�e comme une
743      expression rationnelle. Les expressions rationnelles sont
744      impl�ment�es par le moteur <a href="http://www.pcre.org">PCRE</a>
745      et poss�dent la m�me syntaxe que celles de <a href="http://www.perl.com">perl 5</a>. Notez que <code>==</code>
746      n'est qu'un alias pour <code>=</code> et se comporte exactement de
747      la m�me mani�re que ce dernier.</p>
748
749      <p>Si vous faites une comparaison directe (<code>=</code> ou
750      <code>==</code>), vous pouvez extraire des parties de l'expression
751      rationnelle. Les parties extraites sont stock�es dans les
752      variables sp�ciales <code>$1</code> .. <code>$9</code>. L'ensemble
753      de la cha�ne correspondant � l'expression rationnelle est stock�
754      dans la variable sp�ciale <code>$0</code>.</p>
755
756      <div class="example"><h3>Exemple</h3><p><code>
757        &lt;!--#if expr="$QUERY_STRING = /^sid=([a-zA-Z0-9]+)/" --&gt;<br />
758        <span class="indent">
759          &lt;!--#set var="session" value="$1" --&gt;<br />
760        </span>
761        &lt;!--#endif --&gt;
762      </code></p></div>
763      </dd>
764
765      <dt><code><var>cha�ne1</var> &lt; <var>cha�ne2</var><br />
766       <var>cha�ne1</var> &lt;= <var>cha�ne2</var><br />
767       <var>cha�ne1</var> &gt; <var>cha�ne2</var><br />
768       <var>cha�ne1</var> &gt;= <var>cha�ne2</var></code></dt>
769
770      <dd>Compare <var>cha�ne1</var> � <var>cha�ne2</var>. Notez que les
771      cha�nes sont compar�es de mani�re <em>litt�rale</em> (en utilisant
772      <code>strcmp(3)</code>). Ainsi, la cha�ne "100" est inf�rieure �
773      "20".</dd>
774
775      <dt><code>( <var>test_condition</var> )</code></dt>
776      <dd>vrai si <var>test_condition</var> est vrai</dd>
777
778      <dt><code>! <var>test_condition</var></code></dt>
779      <dd>vrai si <var>test_condition</var> est faux</dd>
780
781      <dt><code><var>test_condition1</var> &amp;&amp;
782        <var>test_condition2</var></code></dt>
783      <dd>vrai si <var>test_condition1</var> et
784      <var>test_condition2</var> sont tous les deux vrais</dd>
785
786      <dt><code><var>test_condition1</var> ||
787        <var>test_condition2</var></code></dt>
788      <dd>vrai si au moins un des tests <var>test_condition1</var> ou
789      <var>test_condition2</var> est vrai</dd>
790    </dl>
791
792    <p>"<code>=</code>" et "<code>!=</code>" ont une priorit� sup�rieure
793    � "<code>&amp;&amp;</code>" et "<code>||</code>". "<code>!</code>" a
794    la priorit� la plus haute. Ainsi, les deux directives suivantes sont
795    �quivalentes :</p>
796
797    <div class="example"><p><code>
798      &lt;!--#if expr="$a = test1 &amp;&amp; $b = test2" --&gt;<br />
799      &lt;!--#if expr="($a = test1) &amp;&amp; ($b = test2)" --&gt;
800    </code></p></div>
801
802    <p>Les op�rateurs bool�ens <code>&amp;&amp;</code> et
803    <code>||</code> ont la m�me priorit�. Ainsi, si vous voulez
804    augmenter la priorit� d'un de ces op�rateurs, vous devez utiliser
805    des parenth�ses.</p>
806
807    <p>Tout ce qui n'est pas reconnu comme variable ou op�rateur est
808    trait� comme une cha�ne. Les cha�nes peuvent aussi �tre entour�es
809    d'apostrophes : <code>'cha�ne'</code>. Les cha�nes sans apostrophe
810    ne peuvent pas contenir d'espaces (espaces ou tabulations) car
811    ceux-ci servent � s�parer certains �l�ments comme les variables. Si
812    plusieurs cha�nes se trouvent dans une ligne, elles sont concat�n�es
813    en utilisant des espaces. Ainsi,</p>
814
815    <div class="example"><p><code><var>cha�ne1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>cha�ne2</var></code> devient <code><var>cha�ne1</var>&nbsp;<var>cha�ne2</var></code><br />
816      <br />
817      et<br />
818      <br />
819      <code>'<var>cha�ne1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>cha�ne2</var>'</code> devient <code><var>cha�ne1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>cha�ne2</var></code>.</p></div>
820
821    <div class="note"><h3>Optimisation des expressions bool�ennes</h3>
822      <p>Si les expressions atteignent une complexit� suffisante pour
823      ralentir les traitements de mani�re significative, vous pouvez
824      essayer de les optimiser en fonction des r�gles d'�valuation :</p>
825      <ul>
826      <li>Les expressions sont �valu�es de la gauche vers la droite</li>
827      <li>Les op�rateurs bool�ens binaires (<code>&amp;&amp;</code> et
828      <code>||</code>) font l'objet d'une �valuation abr�g�e chaque fois
829      que cela est possible. En d'autres termes, et selon la r�gle
830      ci-dessus, <code class="module"><a href="/mod/mod_include.html">mod_include</a></code> �value tout d'abord la
831      partie gauche de l'expression. Si le r�sultat de l'�valuation de
832      cette partie gauche suffit � d�terminer le r�sultat final,
833      l'�valuation s'arr�te ici. Dans le cas contraire, la partie droite
834      est �valu�e, et le r�sultat final tient compte des r�sultats des
835      �valuations des parties gauche et droite.</li>
836      <li>L'�valuation abr�g�e est d�sactiv�e tant qu'il reste des
837      expressions r�guli�res � traiter. Ces derni�res doivent �tre
838      �valu�es afin de d�finir les variables correspondant aux
839      r�f�rences arri�res (<code>$1</code> .. <code>$9</code>).</li>
840      </ul>
841      <p>Si vous voulez d�terminer la mani�re dont une expression est
842      trait�e, vous pouvez recompiler <code class="module"><a href="/mod/mod_include.html">mod_include</a></code> en
843      utilisant l'option de compilation <code>-DDEBUG_INCLUDE</code>.
844      Ceci a pour effet d'ins�rer, pour chaque expression interpr�t�e,
845      des informations �tiquet�es, l'arbre d'interpr�tation et la
846      mani�re dont elle est �valu�e au sein du flux de sortie envoy� au
847      client.</p>
848    </div>
849
850    <div class="note"><h3>Slashes d'�chappement dans les expressions
851    rationnelles</h3>
852     <p>Tous les caract�res slashes qui ne sont pas des s�parateurs dans
853     votre expression rationnelle doivent �tre �chapp�s, et ceci sans
854     tenir compte de leur signification du point de vue du moteur
855     d'expressions rationnelles.</p>
856    </div>
857
858    <div class="note"><h3>Documentation de r�f�rence</h3>
859    <p>Voir le document <a href="/expr.html">Les expressions dans le
860    serveur HTTP Apache</a>, pour une r�f�rence compl�te et des exemples.</p>
861    </div>
862
863
864</div>
865<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
866<div class="directive-section"><h2><a name="SSIEndTag" id="SSIEndTag">SSIEndTag</a> <a name="ssiendtag" id="ssiendtag">Directive</a></h2>
867<table class="directive">
868<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Cha�ne qui termine l'�l�ment include</td></tr>
869<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIEndTag <var>tag</var></code></td></tr>
870<tr><th><a href="directive-dict.html#Default">D�faut:</a></th><td><code>SSIEndTag "--&gt;"</code></td></tr>
871<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
872<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
873<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
874</table>
875    <p>Cette directive permet de modifier la cha�ne que
876    <code class="module"><a href="/mod/mod_include.html">mod_include</a></code> interpr�te comme la fin d'un �l�ment
877    include.</p>
878
879    <pre class="prettyprint lang-config">SSIEndTag "%&gt;"</pre>
880
881
882
883<h3>Voir aussi</h3>
884<ul>
885<li><code class="directive"><a href="#ssistarttag">SSIStartTag</a></code></li>
886</ul>
887</div>
888<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
889<div class="directive-section"><h2><a name="SSIErrorMsg" id="SSIErrorMsg">SSIErrorMsg</a> <a name="ssierrormsg" id="ssierrormsg">Directive</a></h2>
890<table class="directive">
891<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Message d'erreur affich� lorsqu'une erreur SSI
892survient</td></tr>
893<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIErrorMsg <var>message</var></code></td></tr>
894<tr><th><a href="directive-dict.html#Default">D�faut:</a></th><td><code>SSIErrorMsg "[an error occurred while processing this
895directive]"</code></td></tr>
896<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
897<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
898<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
899<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
900</table>
901    <p>La directive <code class="directive">SSIErrorMsg</code> permet de
902    modifier le message d'erreur affich� lorsqu'une erreur SSI survient.
903    Pour les serveurs en production, il est recommand� de modifier le
904    message d'erreur par d�faut en <code>"&lt;!-- Error
905    --&gt;"</code>, de fa�on � ce que le message ne soit pas
906    pr�sent� � l'utilisateur.</p>
907
908    <p>Cette directive a le m�me effet que l'�l�ment
909    <code>&lt;!--#config errmsg=<var>message</var> --&gt;</code>.</p>
910
911    <pre class="prettyprint lang-config">SSIErrorMsg "&lt;!-- Error --&gt;"</pre>
912
913
914</div>
915<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
916<div class="directive-section"><h2><a name="SSIETag" id="SSIETag">SSIETag</a> <a name="ssietag" id="ssietag">Directive</a></h2>
917<table class="directive">
918<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D�finit si des en-t�tes ETags sont g�n�r�s par le serveur.</td></tr>
919<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIETag on|off</code></td></tr>
920<tr><th><a href="directive-dict.html#Default">D�faut:</a></th><td><code>SSIETag off</code></td></tr>
921<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r�pertoire, .htaccess</td></tr>
922<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
923<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
924<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td>Disponible � partir de la version 2.2.15 du serveur HTTP
925Apache.</td></tr>
926</table>
927      <p>Dans le cas g�n�ral, un fichier filtr� par
928      <code class="module"><a href="/mod/mod_include.html">mod_include</a></code> peut contenir des �l�ments soit
929      g�n�r�s dynamiquement, soit �ventuellement modifi�s ind�pendemment
930      du fichier original. En cons�quence, il est demand� par d�faut au
931      serveur de ne pas g�n�rer d'en-t�te <code>ETag</code> � la r�ponse
932      en ajoutant <code>no-etag</code> aux informations de requ�te.</p>
933
934      <p>Ce comportement peut �tre modifi� via la directive
935      <code class="directive">SSIETag</code> qui permet au serveur de g�n�rer un
936      en-t�te <code>ETag</code>. On peut aussi l'utiliser pour la mise
937      en cache de la sortie. Notez qu'un serveur d'arri�re-plan ou un
938      g�n�rateur de contenu dynamique peut lui-m�me g�n�rer un en-t�te
939      <code>ETag</code>, en ignorant l'information <code>no-etag</code>,
940      cet en-t�te <code>ETag</code> �tant transmis par
941      <code class="module"><a href="/mod/mod_include.html">mod_include</a></code> sans tenir compte de la d�finition de
942      la pr�sente directive. La directive <code class="directive">SSIETag</code>
943      peut prendre une des valeurs suivantes :</p>
944
945      <dl>
946
947        <dt><code>off</code></dt>
948        <dd><code>no-etag</code> sera ajout� aux informations de
949	requ�te, et il sera demand� au serveur de ne pas g�n�rer
950	d'en-t�te <code>ETag</code>. Lorsqu'un serveur ignore la valeur
951	de <code>no-etag</code> et g�n�re tout de m�me un en-t�te
952	<code>ETag</code>, ce dernier sera respect�.</dd>
953
954        <dt><code>on</code></dt>
955        <dd>Les en-t�tes <code>ETag</code> existants seront respect�s,
956	et ceux g�n�r�s par le serveur seront ajout�s � la r�ponse.</dd>
957
958      </dl>
959
960
961</div>
962<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
963<div class="directive-section"><h2><a name="SSILastModified" id="SSILastModified">SSILastModified</a> <a name="ssilastmodified" id="ssilastmodified">Directive</a></h2>
964<table class="directive">
965<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D�finit si des en-t�tes <code>Last-Modified</code> sont
966g�n�r�s par le serveur.</td></tr>
967<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSILastModified on|off</code></td></tr>
968<tr><th><a href="directive-dict.html#Default">D�faut:</a></th><td><code>SSILastModified off</code></td></tr>
969<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r�pertoire, .htaccess</td></tr>
970<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
971<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
972<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td>Disponible � partir de la version 2.2.15 du serveur HTTP
973Apache.</td></tr>
974</table>
975      <p>Dans le cas g�n�ral, un fichier filtr� par
976      <code class="module"><a href="/mod/mod_include.html">mod_include</a></code> peut contenir des �l�ments soit
977      g�n�r�s dynamiquement, soit �ventuellement modifi�s ind�pendemment
978      du fichier original. En cons�quence, l'en-t�te
979      <code>Last-Modified</code> est supprim� par d�faut de la r�ponse.</p>
980
981      <p>La directive <code class="directive">SSILastModified</code> permet de
982      modifier ce comportement en faisant en sorte que l'en-t�te
983      <code>Last-Modified</code> soit respect� s'il est d�j� pr�sent, ou
984      d�fini dans le cas contraire. On peut aussi l'utiliser pour la mise
985      en cache de la sortie. La directive
986      <code class="directive">SSILastModified</code> peut prendre une des
987      valeurs suivantes :</p>
988
989      <dl>
990
991        <dt><code>off</code></dt>
992        <dd>L'en-t�te <code>Last-Modified</code> sera supprim� des
993	r�ponses, � moins que la directive <code class="directive"><a href="#xbithack">XBitHack</a></code> ne soit d�finie �
994	<code>full</code> comme d�crit plus loin.</dd>
995
996        <dt><code>on</code></dt>
997        <dd>L'en-t�te <code>Last-Modified</code> sera respect� s'il est
998	d�j� pr�sent, et ajout� � la r�ponse si cette derni�re est un
999	fichier et si l'en-t�te est manquant. La directive <code class="directive"><a href="#ssilastmodified">SSILastModified</a></code> l'emporte sur
1000	la directive <code class="directive"><a href="#xbithack">XBitHack</a></code>.</dd>
1001
1002      </dl>
1003
1004
1005</div>
1006<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
1007<div class="directive-section"><h2><a name="SSILegacyExprParser" id="SSILegacyExprParser">SSILegacyExprParser</a> <a name="ssilegacyexprparser" id="ssilegacyexprparser">Directive</a></h2>
1008<table class="directive">
1009<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active le mode de compatibilit� pour les expressions
1010conditionnelles.</td></tr>
1011<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSILegacyExprParser on|off</code></td></tr>
1012<tr><th><a href="directive-dict.html#Default">D�faut:</a></th><td><code>SSILegacyExprParser off</code></td></tr>
1013<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r�pertoire, .htaccess</td></tr>
1014<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
1015<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
1016<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td>Disponible � partir de la version 2.3.13.</td></tr>
1017</table>
1018    <p>Depuis la version 2.3.13, <code class="module"><a href="/mod/mod_include.html">mod_include</a></code> a adopt�
1019    la nouvelle syntaxe <a href="/expr.html">ap_expr</a> pour ses
1020    expressions conditionnelles dans les �l�ments de contr�le de flux
1021    <code>#if</code>. Cette directive permet de r�activer l'<a href="#legacyexpr">ancienne syntaxe</a> qui est compatible avec les
1022    versions 2.2.x et ant�rieures d'Apache HTTPD.
1023    </p>
1024
1025</div>
1026<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
1027<div class="directive-section"><h2><a name="SSIStartTag" id="SSIStartTag">SSIStartTag</a> <a name="ssistarttag" id="ssistarttag">Directive</a></h2>
1028<table class="directive">
1029<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Cha�ne qui marque le d�but d'un �l�ment
1030include</td></tr>
1031<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIStartTag <var>tag</var></code></td></tr>
1032<tr><th><a href="directive-dict.html#Default">D�faut:</a></th><td><code>SSIStartTag "&lt;!--#"</code></td></tr>
1033<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
1034<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
1035<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
1036</table>
1037    <p>Cette directive permet de modifier la cha�ne que
1038    <code class="module"><a href="/mod/mod_include.html">mod_include</a></code> interpr�te comme le d�but d'un �l�ment
1039    include.</p>
1040
1041    <p>Cette option peut vous �tre utile si vous avez deux serveurs qui
1042    interpr�tent un fichier avec des commandes diff�rentes (et
1043    �ventuellement � des moments diff�rents).</p>
1044
1045    <pre class="prettyprint lang-config">      SSIStartTag "&lt;%"<br />
1046      SSIEndTag   "%&gt;"</pre>
1047
1048
1049    <p>Avec l'exemple ci-dessus, qui d�finit aussi une directive
1050    <code class="directive"><a href="#ssiendtag">SSIEndTag</a></code>, vous pourrez
1051    inscrire des directives SSI comme dans l'exemple suivant :</p>
1052
1053    <div class="example"><h3>Directives SSI avec marques de d�but et de fin
1054    personnalis�es</h3><p><code>
1055      &lt;%printenv %&gt;
1056    </code></p></div>
1057
1058<h3>Voir aussi</h3>
1059<ul>
1060<li><code class="directive"><a href="#ssiendtag">SSIEndTag</a></code></li>
1061</ul>
1062</div>
1063<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
1064<div class="directive-section"><h2><a name="SSITimeFormat" id="SSITimeFormat">SSITimeFormat</a> <a name="ssitimeformat" id="ssitimeformat">Directive</a></h2>
1065<table class="directive">
1066<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration du format d'affichage des dates</td></tr>
1067<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSITimeFormat <var>cha�ne de formatage</var></code></td></tr>
1068<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>
1069<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
1070<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
1071<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
1072<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
1073</table>
1074<p>Cette directive permet de modifier le format d'affichage des
1075variables d'environnement <code>DATE</code>. La <var>cha�ne de
1076formatage</var> est identique � celle de la fonction
1077<code>strftime(3)</code> de la biblioth�que C standard.</p>
1078
1079    <p>Cette directive a le m�me effet que l'�l�ment
1080    <code>&lt;!--#config timefmt=<var>cha�ne de formatage</var>
1081    --&gt;</code>.</p>
1082
1083    <pre class="prettyprint lang-config">SSITimeFormat "%R, %B %d, %Y"</pre>
1084
1085
1086    <p>Avec l'exemple ci-dessus, les dates seront affich�es dans le
1087    style "22:26, June 14, 2002".</p>
1088
1089</div>
1090<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
1091<div class="directive-section"><h2><a name="SSIUndefinedEcho" id="SSIUndefinedEcho">SSIUndefinedEcho</a> <a name="ssiundefinedecho" id="ssiundefinedecho">Directive</a></h2>
1092<table class="directive">
1093<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Cha�ne � afficher lorsqu'on tente d'extraire le contenu
1094d'une variable non d�finie</td></tr>
1095<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIUndefinedEcho <var>cha�ne</var></code></td></tr>
1096<tr><th><a href="directive-dict.html#Default">D�faut:</a></th><td><code>SSIUndefinedEcho "(none)"</code></td></tr>
1097<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
1098<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
1099<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
1100<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
1101</table>
1102    <p>Cette directive permet de modifier la cha�ne affich�e par
1103    <code class="module"><a href="/mod/mod_include.html">mod_include</a></code> lorsqu'on tente d'extraire le contenu
1104    d'une variable non d�finie.</p>
1105
1106    <pre class="prettyprint lang-config">SSIUndefinedEcho "&lt;!-- nondef --&gt;"</pre>
1107
1108
1109</div>
1110<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
1111<div class="directive-section"><h2><a name="XBitHack" id="XBitHack">XBitHack</a> <a name="xbithack" id="xbithack">Directive</a></h2>
1112<table class="directive">
1113<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Interpr�te les directives SSI dans les fichiers dont le bit
1114d'ex�cution est positionn�</td></tr>
1115<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>XBitHack on|off|full</code></td></tr>
1116<tr><th><a href="directive-dict.html#Default">D�faut:</a></th><td><code>XBitHack off</code></td></tr>
1117<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
1118<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Options</td></tr>
1119<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
1120<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
1121</table>
1122    <p>La directive <code class="directive">XBitHack</code> permet de contr�ler
1123    l'interpr�tation des documents html standards. Elle n'affecte que
1124    les fichiers dont le <a class="glossarylink" href="/glossary.html#type mime" title="voir glossaire">type MIME</a> est
1125    <code>text/html</code>. <code class="directive">XBitHack</code> peut prendre
1126    les valeurs suivantes :</p>
1127
1128    <dl>
1129      <dt><code>off</code></dt>
1130      <dd>Aucun traitement particulier pour les fichiers
1131      ex�cutables.</dd>
1132
1133      <dt><code>on</code></dt>
1134      <dd>Tout fichier <code>text/html</code> dont le bit d'ex�cution
1135      est positionn� pour le propri�taire sera trait� en tant que
1136      document html interpr�t� par le serveur.</dd>
1137
1138      <dt><code>full</code></dt>
1139      <dd>Identique � <code>on</code>, avec test du bit d'ex�cution pour
1140      le groupe. Si ce dernier est positionn�, la date de <code>derni�re
1141      modification</code> du fichier renvoy� est d�finie � la date de
1142      derni�re modification du fichier. Dans le cas contraire, aucune
1143      date de derni�re modification n'est renvoy�e. Le positionnement de
1144      ce bit permet aux clients et aux mandataires de g�rer la mise en
1145      cache du r�sultat de la requ�te.
1146
1147      <div class="note"><h3>Note</h3>
1148      <p>Il est recommand� de n'utiliser l'option full que dans le cas
1149      o� vous �tes certain que le bit d'ex�cution du groupe est non
1150      positionn� pour les scripts SSI qui pourraient effectuer l'<code>#include</code> d'un programme CGI ou bien produire des sorties
1151      diff�rentes � chaque acc�s (ou seraient susceptibles d'�tre
1152      modifi�es au cours des requ�tes ult�rieures).</p>
1153
1154      <p>Lorsqu'elle est d�finie � <code>on</code>, la directive
1155      <code class="directive"><a href="#ssilastmodified">SSILastModified</a></code>
1156      l'emporte sur la directive <code class="directive"><a href="#xbithack">XBitHack</a></code>.</p>
1157      </div>
1158
1159      </dd>
1160    </dl>
1161
1162
1163</div>
1164</div>
1165<div class="bottomlang">
1166<p><span>Langues Disponibles: </span><a href="/en/mod/mod_include.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
1167<a href="/fr/mod/mod_include.html" title="Fran�ais">&nbsp;fr&nbsp;</a> |
1168<a href="/ja/mod/mod_include.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a></p>
1169</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&amp;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>
1170<script type="text/javascript"><!--//--><![CDATA[//><!--
1171var comments_shortname = 'httpd';
1172var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_include.html';
1173(function(w, d) {
1174    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
1175        d.write('<div id="comments_thread"><\/div>');
1176        var s = d.createElement('script');
1177        s.type = 'text/javascript';
1178        s.async = true;
1179        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
1180        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
1181    }
1182    else { 
1183        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
1184    }
1185})(window, document);
1186//--><!]]></script></div><div id="footer">
1187<p class="apache">Copyright 2014 The Apache Software Foundation.<br />Autoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
1188<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.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[//><!--
1189if (typeof(prettyPrint) !== 'undefined') {
1190    prettyPrint();
1191}
1192//--><!]]></script>
1193</body></html>