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="<-" alt="<-" src="/images/left.gif" /></a></div> 22<div id="path"> 23<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.4</a> > <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"> en </a> | 28<a href="/fr/mod/mod_include.html" title="Fran�ais"> fr </a> | 29<a href="/ja/mod/mod_include.html" hreflang="ja" rel="alternate" title="Japanese"> ja </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"><Directory></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 <!--#<var>�l�ment</var> <var>attribut</var>=<var>valeur</var> 125 <var>attribut</var>=<var>valeur</var> ... --> 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>--></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><!--#</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 <!--#config errmsg="[Valeur non d�finie]" --> 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 <!--#config errmsg="[Zut, quelque chose s'est mal pass�.]" --> 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 <!--#config sizefmt="abbrev" --> 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 <!--#config timefmt=""%R, %B %d, %Y"" --> 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 <!--#echo encoding="entity" var="QUERY_STRING" --> 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 <!--#exec cgi="/cgi-bin/exemple.cgi" --> 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 <!--#include virtual="/cgi-bin/exemple.cgi?argument=valeur" --> 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 <!--#exec cmd="perl /chemin/vers/script_perl arg1 arg2" --> 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 <!--#fsize file="mod_include.html" 374 --> 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 <!--#fsize 395 virtual="/docs/mod/mod_include.html" --> 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 <!--#include virtual="/cgi-bin/exemple.cgi?argument=valeur" --> 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 <!--#include virtual="/not-exist.html" onerror="/error.html" --> 484 </code></p></div> 485 486 <div class="example"><p><code> 487 # Chemins onerror d�di�s<br /> 488 <!--#include virtual="/path-a.html" onerror="/error-a.html" virtual="/path-b.html" onerror="/error-b.html" --> 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 <pre> 503 <!--#printenv --> 504 </pre> 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 <!--#set var="category" value="help" --> 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>&</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 <!--#set var="cur" value="\$test" --> 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 <!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" --> 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 <!--#if expr="<var>test_condition</var>" --><br /> 642 <!--#elif expr="<var>test_condition</var>" --><br /> 643 <!--#else --><br /> 644 <!--#endif --> 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 <!--#if expr='-R "10.0.0.0/8"' --><br /> 678 <span class="indent"> 679 depuis le r�seau local<br /> 680 </span> 681 <!--#else --><br /> 682 <span class="indent"> 683 depuis ailleurs<br /> 684 </span> 685 <!--#endif --> 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 <!--#if expr='v("foo") = "bar"' --><br /> 693 <span class="indent"> 694 foo vaut bar<br /> 695 </span> 696 <!--#endif --> 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 <!--#if expr="-A /prive" --><br /> 728 <span class="indent"> 729 Cliquez <a href="/prive">ici</a> pour acc�der aux 730 informations priv�es.<br /> 731 </span> 732 <!--#endif --> 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 <!--#if expr="$QUERY_STRING = /^sid=([a-zA-Z0-9]+)/" --><br /> 758 <span class="indent"> 759 <!--#set var="session" value="$1" --><br /> 760 </span> 761 <!--#endif --> 762 </code></p></div> 763 </dd> 764 765 <dt><code><var>cha�ne1</var> < <var>cha�ne2</var><br /> 766 <var>cha�ne1</var> <= <var>cha�ne2</var><br /> 767 <var>cha�ne1</var> > <var>cha�ne2</var><br /> 768 <var>cha�ne1</var> >= <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> && 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>&&</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 <!--#if expr="$a = test1 && $b = test2" --><br /> 799 <!--#if expr="($a = test1) && ($b = test2)" --> 800 </code></p></div> 801 802 <p>Les op�rateurs bool�ens <code>&&</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> <var>cha�ne2</var></code> devient <code><var>cha�ne1</var> <var>cha�ne2</var></code><br /> 816 <br /> 817 et<br /> 818 <br /> 819 <code>'<var>cha�ne1</var> <var>cha�ne2</var>'</code> devient <code><var>cha�ne1</var> <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>&&</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 "-->"</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 "%>"</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>"<!-- Error 905 -->"</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><!--#config errmsg=<var>message</var> --></code>.</p> 910 911 <pre class="prettyprint lang-config">SSIErrorMsg "<!-- Error -->"</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 "<!--#"</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 "<%"<br /> 1046 SSIEndTag "%>"</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 <%printenv %> 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><!--#config timefmt=<var>cha�ne de formatage</var> 1081 --></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 "<!-- nondef -->"</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"> en </a> | 1167<a href="/fr/mod/mod_include.html" title="Fran�ais"> fr </a> | 1168<a href="/ja/mod/mod_include.html" hreflang="ja" rel="alternate" title="Japanese"> ja </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&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>