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
8 <title>Tutoriel Apache : Introduction aux "Inclusions Côté Serveur"
9 (Server Side Includes - SSI) - Serveur Apache HTTP</title>
10 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
11 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
12 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
13 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
14 <body id="manual-page"><div id="page-header">
15 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
16 <p class="apache">Serveur Apache HTTP Version 2.3</p>
17 <img alt="" src="../images/feather.gif" /></div>
18 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
20 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.3</a> > <a href="./">Recettes et tutoriels</a></div><div id="page-content"><div id="preamble"><h1>Tutoriel Apache : Introduction aux "Inclusions Côté Serveur"
21 (Server Side Includes - SSI)</h1>
23 <p><span>Langues Disponibles: </span><a href="../en/howto/ssi.html" hreflang="en" rel="alternate" title="English"> en </a> |
24 <a href="../fr/howto/ssi.html" title="Français"> fr </a> |
25 <a href="../ja/howto/ssi.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
26 <a href="../ko/howto/ssi.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
27 <a href="../zh-cn/howto/ssi.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
30 <p>Les SSI permettent d'ajouter du contenu dynamique à des documents
31 HTML préexistants.</p>
33 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">Introduction</a></li>
34 <li><img alt="" src="../images/down.gif" /> <a href="#what">Qu'est-ce que SSI ?</a></li>
35 <li><img alt="" src="../images/down.gif" /> <a href="#configuring">Configurer votre serveur pour permettre les SSI</a></li>
36 <li><img alt="" src="../images/down.gif" /> <a href="#basic">Directives SSI de base</a></li>
37 <li><img alt="" src="../images/down.gif" /> <a href="#additionalexamples">Exemples additionnels</a></li>
38 <li><img alt="" src="../images/down.gif" /> <a href="#config">Que puis-je configurer d'autre ?</a></li>
39 <li><img alt="" src="../images/down.gif" /> <a href="#exec">Exécution de commandes</a></li>
40 <li><img alt="" src="../images/down.gif" /> <a href="#advanced">Techniques SSI avancées</a></li>
41 <li><img alt="" src="../images/down.gif" /> <a href="#conclusion">Conclusion</a></li>
43 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
45 <h2><a name="related" id="related">Introduction</a></h2>
46 <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_include.html">mod_include</a></code></li><li><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="../mod/mod_expires.html">mod_expires</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="../mod/mod_include.html#xbithack">XBitHack</a></code></li><li><code class="directive"><a href="../mod/mod_mime.html#addtype">AddType</a></code></li><li><code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code></li><li><code class="directive"><a href="../mod/mod_setenvif.html#browsermatchnocase">BrowserMatchNoCase</a></code></li></ul></td></tr></table>
48 <p>Cet article traite des Inclusions Côté Serveur (Server Side
49 Includes), plus communément appelés SSI. Vous trouverez ici la
50 manière de configurer votre serveur pour permettre les SSI, ainsi
51 qu'une introduction à quelques techniques SSI de base permettant
52 d'ajouter du contenu dynamique à vos pages HTML préexistantes.</p>
54 <p>La dernière partie de cet article sera consacrée aux
55 configurations SSI plus avancées, telles que les expressions
56 conditionnelles dans les directives SSI.</p>
58 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
60 <h2><a name="what" id="what">Qu'est-ce que SSI ?</a></h2>
62 <p>SSI (Server Side Includes) est constitué de directives placées dans
63 des pages HTML, et évaluées par le serveur au moment où les pages
64 sont servies. Elles vous permettent d'ajouter du contenu généré
65 dynamiquement à une page HTML préexistante, sans avoir à servir la
66 page entière via un programme CGI, ou toute autre technologie de
67 contenu dynamique.</p>
69 <p>Le choix entre l'utilisation des SSI et la génération entière de
70 la page par un programme quelconque, est en général dicté par la
71 proportion de contenu statique et de contenu devant être généré
72 chaque fois que la page est servie. SSI est idéal pour ajouter de
73 petites quantités d'information, comme l'heure courante. Mais si la
74 plus grande partie de votre page est générée au moment où elle est
75 servie, vous devez vous tourner vers une autre solution.</p>
76 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
78 <h2><a name="configuring" id="configuring">Configurer votre serveur pour permettre les SSI</a></h2>
81 <p>Pour permettre l'utilisation des SSI sur votre serveur, vous
82 devez ajouter la directive suivante dans votre fichier
83 <code>httpd.conf</code>, ou dans un fichier <code>.htaccess</code>
85 <div class="example"><p><code>
89 <p>Cette directive indique à Apache que vous désirez permettre la
90 recherche de directives SSI lors de l'interprétation des fichiers.
91 Notez cependant que la plupart des configurations contiennent de
92 nombreuses directives <code class="directive"><a href="../mod/core.html#options">Options</a></code>
93 qui peuvent s'écraser les unes les autres. Vous devrez probablement
94 appliquer ces directives <code>Options</code> au répertoire
95 spécifique pour lequel vous voulez activer les SSI, afin d'être sûr
96 qu'elles y seront bien activées.</p>
98 <p>Tout fichier ne fera cependant pas l'objet de recherche de
99 directives SSI. Vous devez indiquer à Apache quels fichiers seront
100 concernés. Vous pouvez y parvenir en indiquant une extension, comme
101 <code>.shtml</code>, à l'aide des directives suivantes :</p>
102 <div class="example"><p><code>
103 AddType text/html .shtml<br />
104 AddOutputFilter INCLUDES .shtml
107 <p>Un des désavantages de cette approche réside dans le fait que si
108 vous voulez ajouter des directives SSI à une page préexistante, vous
109 devrez changer le nom de cette page, et donc tout lien qui la
110 contient, de façon à ce qu'elle possède l'extension
111 <code>.shtml</code>, condition nécessaire pour que les directives
112 SSI qu'elle contient soient traitées.</p>
114 <p>Une autre méthode consiste à utiliser la directive <code class="directive"><a href="../mod/mod_include.html#xbithack">XBitHack</a></code> :</p>
115 <div class="example"><p><code>
119 <p>La directive <code class="directive"><a href="../mod/mod_include.html#xbithack">XBitHack</a></code>
120 indique à Apache qu'il doit rechercher des directivves SSI dans les
121 fichiers si leur bit d'exécution est positionné. Il n'est ainsi plus
122 nécessaire de changer le nom du fichier pour ajouter des directives
123 SSI à une page préexistante ; vous devez simplement attribuer les
124 droits d'exécution au fichier à l'aide de <code>chmod</code>.</p>
125 <div class="example"><p><code>
126 chmod +x pagename.html
129 <p>Un bref commentaire sur ce qu'il ne faut pas faire. Certaines
130 personnes peuvent vous conseiller de tout simplement indiquer à
131 Apache de rechercher des directives SSI dans tous les fichiers
132 <code>.html</code>, ce qui vous évite d'avoir à gérer les noms de
133 fichiers avec extension <code>.shtml</code>. Ils n'ont probablement
134 pas entendu parler de la directive <code class="directive"><a href="../mod/mod_include.html#xbithack">XBitHack</a></code>. En effet, vous devez
135 garder à l'esprit qu'en faisant ceci, Apache va devoir rechercher
136 des directives SSI dans chaque fichier qu'il sert, même s'il n'en
137 contient aucune. Ce n'est donc pas une bonne idée car les
138 performances peuvent en être sensiblement affectées.</p>
140 <p>Bien entendu, sous Windows, il n'y a pas de bit d'exécution à
141 positionner, ce qui limite un peu vos choix.</p>
143 <p>Dans sa configuration par défaut, Apache n'envoie pas la date de
144 dernière modification ou les en-têtes HTTP relatifs à la taille des
145 contenus dans les pages SSI, car ses valeurs sont difficiles à
146 calculer pour les contenus dynamiques. Ceci peut induire une
147 impression de diminution des performances côté client, en empêchant
148 la mise en cache de votre document. Il existe deux méthodes pour
149 résoudre ce problème :</p>
152 <li>Utilisez la configuration <code>XBitHack Full</code>. Elle
153 indique à Apache de déterminer la date de dernière modification en
154 ne regardant que la date du fichier à l'origine de la requête,
155 tout en ignorant la date de modification de tout fichier inclus.</li>
157 <li>Utilisez les directives fournies par le module
158 <code class="module"><a href="../mod/mod_expires.html">mod_expires</a></code> pour définir de manière explicite la
159 date d'expiration de vos fichiers, laissant par la-même
160 aux navigateurs et aux mandataires le soin de déterminer s'il est
161 opportun ou non de les mettre en cache.</li>
163 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
164 <div class="section">
165 <h2><a name="basic" id="basic">Directives SSI de base</a></h2>
167 <p>Les directives SSI adoptent la syntaxe suivante :</p>
168 <div class="example"><p><code>
169 <!--#élément attribut=valeur attribut=valeur ... -->
172 <p>Le format d'une directive SSI étant similaire à celui d'un
173 commentaire HTML, si vous n'avez pas activé correctement SSI, le
174 navigateur l'ignorera, mais elle sera encore visible dans le source
175 HTML. Si SSI est correctement configuré, la directive sera remplacée
176 par ses résultats.</p>
178 <p>"élément" peut prendre de nombreuses formes, et nous décrirons
179 plus précisément la plupart d'entre eux dans la prochaine version de
180 ce document. Pour le moment, voici quelques exemples de ce que vous
181 pouvez faire avec SSI.</p>
183 <h3><a name="todaysdate" id="todaysdate">La date courante</a></h3>
185 <div class="example"><p><code>
186 <!--#echo var="DATE_LOCAL" -->
189 <p>L'élément <code>echo</code> permet d'afficher la valeur d'une
190 variable. Il existe un grand nombre de variables standards, y
191 compris l'ensemble des variables d'environnement disponibles pour
192 les programmes CGI. De plus, vous pouvez définir vos propres
193 variables à l'aide de l'élément <code>set</code>.</p>
195 <p>Si vous n'aimez pas le format sous lequel la date s'affiche, vous
196 pouvez utiliser l'élément <code>config</code> avec un attribut
197 <code>timefmt</code>, pour le modifier.</p>
199 <div class="example"><p><code>
200 <!--#config timefmt="%A %B %d, %Y" --><br />
201 Today is <!--#echo var="DATE_LOCAL" -->
205 <h3><a name="lastmodified" id="lastmodified">Date de modification du fichier</a></h3>
207 <div class="example"><p><code>
208 Dernière modification du document <!--#flastmod file="index.html" -->
211 <p>Le format peut là aussi être modifié à l'aide de l'attribut
212 <code>timefmt</code>.</p>
215 <h3><a name="cgi" id="cgi">Inclusion des résultats d'un programme CGI</a></h3>
217 <p>C'est le cas le plus courant d'utilisation des SSI - afficher les
218 résultats d'un programme CGI, comme l'universellement adoré
219 "compteur d'accès".</p>
221 <div class="example"><p><code>
222 <!--#include virtual="/cgi-bin/counter.pl" -->
226 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
227 <div class="section">
228 <h2><a name="additionalexamples" id="additionalexamples">Exemples additionnels</a></h2>
231 <p>Vous trouverez dans ce qui suit quelques exemples spécifiques de
232 ce que vous pouvez faire de vos documents HTML avec SSI.</p>
234 <h3><a name="docmodified" id="docmodified">Quand ce document a-t-il été modifié ?</a></h3>
236 <p>Nous avons mentionné plus haut que vous pouviez utiliser SSI pour
237 informer l'utilisateur de la date de dernière modification du
238 document. Cependant, la méthode pour y parvenir n'a pas été vraiment
239 abordée. Placé dans votre document HTML, le code suivant va insérer
240 un repère de temps dans votre page. Bien entendu, SSI devra avoir
241 été correctement activé, comme décrit plus haut.</p>
242 <div class="example"><p><code>
243 <!--#config timefmt="%A %B %d, %Y" --><br />
244 Dernière modification du fichier <!--#flastmod file="ssi.shtml" -->
247 <p>Bien entendu, vous devez remplacer <code>ssi.shtml</code> par le
248 nom du fichier auquel vous faites référence. Ceci ne conviendra pas
249 si vous recherchez un morceau de code générique que vous pourrez
250 insérer dans tout fichier ; dans ce cas, il est préférable
251 d'utiliser la variable <code>LAST_MODIFIED</code> :</p>
252 <div class="example"><p><code>
253 <!--#config timefmt="%D" --><br />
254 This file last modified <!--#echo var="LAST_MODIFIED" -->
257 <p>Pour plus de détails sur le format <code>timefmt</code>, tapez
258 <code>strftime</code> dans votre moteur de recherche préferé. La
259 syntaxe est identique.</p>
262 <h3><a name="standard-footer" id="standard-footer">Inclusion d'un pied de page standard</a></h3>
265 <p>Si le site que vous gérez comporte plus que quelques pages, vous
266 allez vite vous apercevoir qu'effectuer des modifications sur toutes
267 ces pages peut devenir très contraignant, en particulier si vous
268 voulez qu'elles conservent un aspect homogène.</p>
270 <p>Inclure un fichier pour un en-tête et/ou un pied de page peut
271 simplifier cette corvée de mises à jour. Il vous suffit de
272 confectionner un fichier de pied de page, et de l'inclure dans
273 chaque page à l'aide de l'élément SSI <code>include</code>. Pour
274 définir le fichier à inclure, l'élément <code>include</code> peut
275 utiliser soit l'attribut <code>file</code>, soit l'attribut
276 <code>virtual</code>. L'attribut <code>file</code> est un chemin de
277 fichier <em>relatif au répertoire courant</em>. C'est à dire qu'il
278 ne peut ni avoir pour valeur un chemin absolu (commençant par /), ni
279 comporter "../" dans son chemin. L'attribut <code>virtual</code> est
280 probablement plus commode, et peut spécifier une URL relative au
281 document servi. Elle peut commencer par un /, mais le fichier inclus
282 et le fichier servi doivent résider sur le même serveur.</p>
283 <div class="example"><p><code>
284 <!--#include virtual="/footer.html" -->
287 <p>Je combinerai souvent ces deux derniers points, en ajoutant une
288 directive <code>LAST_MODIFIED</code> dans un fichier de pied de page
289 destiné à être inclus. Le fichier inclus peut contenir des
290 directives SSI, et les inclusions peuvent être imbriquées - à
291 savoir, le fichier inclus peut inclure un autre fichier, etc...</p>
294 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
295 <div class="section">
296 <h2><a name="config" id="config">Que puis-je configurer d'autre ?</a></h2>
299 <p>En plus du format de date, vous pouvez utiliser l'élément
300 <code>config</code> pour configurer deux autres choses.</p>
302 <p>En général, lorsque quelque chose se passe mal avec votre
303 directive SSI, vous recevez le message :</p>
304 <div class="example"><p><code>
305 [an error occurred while processing this directive]
308 <p>Pour modifier ce message, vous pouvez utiliser l'attribut
309 <code>errmsg</code> avec l'élément <code>config</code> :</p>
310 <div class="example"><p><code>
311 <!--#config errmsg="[Il semblerait que vous ne sachiez pas
312 utiliser les SSI]" -->
315 <p>Il est cependant probable que les utilisateurs finaux ne voient
316 jamais ce message, car vous aurez résolu tous les problèmes issus de
317 vos directives SSI avant que votre site ne soit mis en production.
320 <p>Vous pouvez aussi modifier le format sous lequel les tailles de
321 fichiers sont affichées à l'aide de l'attribut <code>sizefmt</code>.
322 Vous pouvez spécifier <code>bytes</code> pour un affichage en
323 octets, ou <code>abbrev</code> pour un affichage plus concis en Ko
324 ou Mo, selon le cas.</p>
325 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
326 <div class="section">
327 <h2><a name="exec" id="exec">Exécution de commandes</a></h2>
330 <p>J'ai pour projet, dans les prochains mois, d'écrire un article à
331 propos de l'utilisation des SSI avec des petits programmes CGI. Pour
332 l'instant, voici ce que vous pouvez faire avec l'élément
333 <code>exec</code>. Vous pouvez vraiment faire exécuter une commande
334 par SSI en utilisant le shell (<code>/bin/sh</code>, pour être plus
335 précis - ou le shell DOS, si vous êtes sous Win32). Par exemple, ce
336 qui suit vous permet d'afficher le contenu d'un répertoire.</p>
337 <div class="example"><p><code>
339 <!--#exec cmd="ls" --><br />
343 <p>ou, sous Windows</p>
344 <div class="example"><p><code>
346 <!--#exec cmd="dir" --><br />
350 <p>Vous noterez probablement l'étrange formatage provoqué par cette
351 directive sous Windows, car la sortie de <code>dir</code> contient
352 la chaîne de caractères "<<code>dir</code>>", ce qui trompe le
355 <p>Notez que cette fonctionnalité est très dangereuse, car elle va
356 permettre d'exécuter tout code associé à l'élément
357 <code>exec</code>. Si vous êtes dans la situation où les
358 utilisateurs peuvent éditer le contenu de vos pages web, dans le cas
359 d'un "livre d'or" par exemple, assurez-vous de désactiver cette
360 fonctionnalité. Vous pouvez, tout en permettant les SSI, désactiver
361 la fonctionnalité <code>exec</code> à l'aide de l'argument
362 <code>IncludesNOEXEC</code> de la directive
363 <code>Options</code>.</p>
364 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
365 <div class="section">
366 <h2><a name="advanced" id="advanced">Techniques SSI avancées</a></h2>
369 <p>Outre l'affichage de contenu, les SSI d'Apache vous permettent de
370 définir des variables, et de les utiliser dans des comparaisons et
373 <h3><a name="variables" id="variables">Définition de variables</a></h3>
375 <p>Avec l'élément <code>set</code>, vous pouvez définir des
376 variables pour un usage ultérieur. Comme nous en aurons besoin plus
377 loin, nous allons en parler tout de suite. La syntaxe se présente
379 <div class="example"><p><code>
380 <!--#set var="name" value="Rich" -->
383 <p>Pour affecter une valeur à vos variables, en plus de la
384 définition littérale de l'exemple ci-dessus, vous pouvez utiliser
385 une autre variable, y compris les <a href="../env.html">variables d'environnement</a>, ou les variables
386 décrites plus haut (comme <code>LAST_MODIFIED</code> par exemple).
387 Pour indiquer qu'il s'agit d'une variable et non d'une chaîne, vous
388 devez utiliser le symbole dollar ($) devant le nom de la
391 <div class="example"><p><code> <!--#set var="modified" value="$LAST_MODIFIED" -->
394 <p>Pour insérer un caractère $ dans la valeur de votre variable,
395 vous devez l'échapper à l'aide d'un backslash.</p>
396 <div class="example"><p><code>
397 <!--#set var="cost" value="\$100" -->
400 <p>Enfin, si vous voulez insérer une variable dans une chaîne, et
401 s'il y a une chance pour que le nom de la variable se confonde avec
402 le reste de la chaîne, vous pouvez l'entourer d'accolades pour
403 eviter toute confusion (Il est difficile de trouver un bon exemple
404 pour illustrer ceci, mais j'espère que vous comprendrez).</p>
405 <div class="example"><p><code>
406 <!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" -->
410 <h3><a name="conditional" id="conditional">Expressions conditionnelles</a></h3>
413 <p>Maintenent que nous avons des variables, et que nous pouvons
414 définir et comparer leurs valeurs, nous sommes à même de les
415 utiliser dans des expressions conditionnelles. Ceci confère à SSI le
416 statut de petit langage de programmation.
417 <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> fournit une structure <code>if</code>,
418 <code>elif</code>, <code>else</code>, <code>endif</code> pour la
419 construction d'expressions conditionnelles, ce qui vous permet de
420 générer plusieurs pages logiques à partir d'une seule vraie
423 <p>La structure de l'expression conditionnelle est :</p>
424 <div class="example"><p><code>
425 <!--#if expr="condition" --><br />
426 <!--#elif expr="condition" --><br />
427 <!--#else --><br />
431 <p>Une <em>condition</em> peut revêtir la forme de toute comparaison
432 logique - soit une comparaison de valeurs avec une autre, soit une
433 vérification de la "vérité" d'une valeur particulière (Une chaîne
434 donnée est vraie si elle n'est pas vide). Pour une liste exhaustive
435 des opérateurs de comparaison disponibles, voir la documentation du
436 module <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>. Voici quelques exemples
437 illustrant l'utilisation de ces expressions.</p>
439 <p>Vous pouvez ajouter les lignes suivantes dans votre fichier de
441 <div class="example"><p><code>
442 BrowserMatchNoCase macintosh Mac<br />
443 BrowserMatchNoCase MSIE InternetExplorer
446 <p>Ces lignes définissent les variables d'environnement "Mac" et
447 "InternetExplorer" à true, si le client utilise InternetExplorer sur
450 <p>Puis, dans votre document où les SSI sont activées, vous ajoutez
452 <div class="example"><p><code>
453 <!--#if expr="-T reqenv('Mac') &&
454 -T reqenv('InternetExplorer')" --><br />
455 Un texte d'excuses est inséré ici<br />
456 <!--#else --><br />
457 Ici se trouve du code JavaScipt sympa<br />
461 <p>Notez que je n'ai rien contre IE sur Macintosh - J'ai juste
462 phosphoré quelques heures la semaine dernière pour faire fonctionner
463 du JavaScript sous IE sur Macintosh, alors qu'il fonctionnait sous
464 tout autre environnement. Ce qui précède a constitué un
465 contournement provisoire.</p>
467 <p>Toute autre variable (que vous avez définie, ou une variable
468 d'environnement normale) peut être utilisée dans les expressions
469 conditionnelles. Associée à la possibilité avec Apache de définir
470 des variables d'environnement à l'aide de directives
471 <code>SetEnvIf</code>, ainsi que d'autres directives en rapport,
472 cette fonctionnalité vous permet d'ajouter des contenus dynamiques
473 assez évolués sans avoir recours aux programmes CGI.</p>
475 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
476 <div class="section">
477 <h2><a name="conclusion" id="conclusion">Conclusion</a></h2>
479 <p>SSI ne remplace certainement pas CGI, ou d'autres technologies
480 utilisées pour la génération de pages web dynamiques. Mais c'est une
481 bonne méthode pour ajouter des petits contenus dynamiques à vos
482 pages, sans devoir fournir un gros effort supplémentaire.</p>
484 <div class="bottomlang">
485 <p><span>Langues Disponibles: </span><a href="../en/howto/ssi.html" hreflang="en" rel="alternate" title="English"> en </a> |
486 <a href="../fr/howto/ssi.html" title="Français"> fr </a> |
487 <a href="../ja/howto/ssi.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
488 <a href="../ko/howto/ssi.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
489 <a href="../zh-cn/howto/ssi.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
490 </div><div id="footer">
491 <p class="apache">Copyright 2011 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
492 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div>