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