]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
fr doc XML file update. trunk trunk
authorLucien Gentis <lgentis@apache.org>
Sun, 28 Jun 2026 15:20:08 +0000 (15:20 +0000)
committerLucien Gentis <lgentis@apache.org>
Sun, 28 Jun 2026 15:20:08 +0000 (15:20 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1935696 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/howto/ssi.xml.fr

index 238bfbe428b62384a65f67c33a535d85b331cc84..863f50da836655bc52cd5f4a572541adbf71d5ec 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1786682:1935522 (outdated) -->
+<!-- English Revision: 1935522 -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
 
 <summary>
 <p>Les SSI permettent d'ajouter du contenu dynamique à des documents
-HTML préexistants.</p>
+HTML préexistants sans nécessiter de cadriciel complet d’application. Ils
+s’avèrent particulièrement utiles pour insérer des éléments courants — en-têtes,
+pieds de page, navigation, horodatages — dans des pages qui, sans cela, seraient
+statiques.</p>
 </summary>
 
 <section id="related"><title>Introduction</title>
@@ -50,184 +53,174 @@ HTML préexistants.</p>
     </directivelist>
 </related>
 
-    <p>Cet article traite des Inclusions Côté Serveur (Server Side
-    Includes), plus communément appelés SSI. Vous trouverez ici la
-    manière de configurer votre serveur pour permettre les SSI, ainsi
-    qu'une introduction à quelques techniques SSI de base permettant
-    d'ajouter du contenu dynamique à vos pages HTML préexistantes.</p>
-
-    <p>La dernière partie de cet article sera consacrée aux
-    configurations SSI plus avancées, telles que les expressions
-    conditionnelles dans les directives SSI.</p>
+    <p>Les SSI permettent d’insérer de simples directives dans les fichiers
+    HTML, que le serveur évaluera avant d’envoyer la page au client. Il s’agit
+    d’une manière simple de stocker du contenu partagé (comme un pied de page
+    global au site ou un horodatage de dernière modification) en un seul
+    endroit, sans nécessiter de moteur de modèle ou de serveur d’applications.</p>
 
+    <p>Ce document décrit la manière de configurer httpd pour autoriser les
+    SSI, les directives SSI basiques pour les tâches courantes, ainsi que
+    quelques techniques plus avancées comme l’inclusion de variable et les
+    expressions conditionnelles.</p>
+    
 </section>
 
 <section id="what"><title>Qu'est-ce que SSI ?</title>
 
-    <p>SSI (Server Side Includes) est constitué de directives placées dans
-    des pages HTML, et évaluées par le serveur au moment où les pages
-    sont servies. Elles vous permettent d'ajouter du contenu généré
-    dynamiquement à une page HTML préexistante, sans avoir à servir la
-    page entière via un programme CGI, ou toute autre technologie de
-    contenu dynamique.</p>
-
-    <p>Par exemple, vous pouvez insérer la directive suivante dans une
-    page HTML existante :</p>
-
-    <example>
-    &lt;!--#echo var="DATE_LOCAL" --&gt;
-    </example>
+    <p>Les directives SSI sont des commentaires HTML avec une syntaxe spécifique
+    que le module <module>mod_include</module> reconnaît et évalue avant que la
+    page ne soit envoyée au client. Elle sont de la forme suivante :</p>
 
-    <p>Ainsi, lorsque la page sera servie, la directive sera évaluée et
-    remplacée par sa valeur :</p>
+<example>
++<highlight language="html">
++&lt;!--#echo var="DATE_LOCAL" --&gt;
++</highlight>
++</example>
 
+    <p>Lorsque la page est servie, ce fragment est remplacé par sa valeur :</p>
+    
     <example>
-    Tuesday, 15-Jan-2013 19:28:54 EST
+    Thursday, 18-Jun-2026 14:22:07 EDT
     </example>
 
-    <p>Le choix entre l'utilisation des SSI et la génération entière de
-    la page par un programme quelconque, est en général dicté par la
-    proportion de contenu statique et de contenu devant être généré
-    chaque fois que la page est servie. SSI est idéal pour ajouter de
-    petites quantités d'information, comme l'heure courante dans
-    l'exemple précédent. Mais si la
-    plus grande partie de votre page est générée au moment où elle est
-    servie, vous devez vous tourner vers une autre solution.</p>
+    <p>Les directives étant intégrées dans des commentaires HTML, les
+    navigateurs les ignoreront si les SSI ne sont pas activées (bien qu’elles
+    demeurent visibles dans le code source de la page).</p>
 </section>
 
 <section id="configuring">
 <title>Configurer votre serveur pour permettre les SSI</title>
 
-    <p>Pour permettre l'utilisation des SSI sur votre serveur, vous
-    devez ajouter la directive suivante dans votre fichier
-    <code>httpd.conf</code>, ou dans un fichier <code>.htaccess</code>
-    :</p>
+    <p>Pour activer le traitement des SSI, ajoutez la directive suivante à votre
+    fichier <code>httpd.conf</code> ou à un fichier <code>.htaccess</code> :</p>
+
+<example>
 <highlight language="config">
         Options +Includes
 </highlight>
+</example>
+
+    <p>Si cette option est définie, httpd va analyser les fichiers en y
+    recherchant des directives SSI. Comme la plupart des configurations
+    contiennent plusieurs directives <directive module="core"
+    >Options</directive> qui peuvent s’outrepasser les unes les autres,
+    appliquez la directive d’activation au répertoire spécifique pour lequel
+    vous voulez activer les SSI.</p>
 
-    <p>Cette directive indique à Apache que vous désirez permettre la
-    recherche de directives SSI lors de l'interprétation des fichiers.
-    Notez cependant que la plupart des configurations contiennent de
-    nombreuses directives <directive module="core">Options</directive>
-    qui peuvent s'écraser les unes les autres. Vous devrez probablement
-    appliquer ces directives <code>Options</code> au répertoire
-    spécifique pour lequel vous voulez activer les SSI, afin d'être sûr
-    qu'elles y seront bien activées.</p>
-
-    <p>Tout fichier ne fera cependant pas l'objet de recherche de
-    directives SSI. Vous devez indiquer à Apache quels fichiers seront
-    concernés. Vous pouvez y parvenir en indiquant une extension, comme
-    <code>.shtml</code>, à l'aide des directives suivantes :</p>
+    <p>Vous devez aussi indiquer à httpd les fichiers qu’il doit analyser. Pour
+    ce faire, il existe deux approches courantes.</p>
+
+    <p>La première consiste à indiquer une extension de nom de fichier (en
+    général <code>.shtml</code>) pour les pages pour lesquelles les SSI sont
+    activées :</p>
+
+<example>
 <highlight language="config">
 AddType text/html .shtml
 AddOutputFilter INCLUDES .shtml        
 </highlight>
+</example>
 
-    <p>Un des désavantages de cette approche réside dans le fait que si
-    vous voulez ajouter des directives SSI à une page préexistante, vous
-    devrez changer le nom de cette page, et donc tout lien qui la
-    contient, de façon à ce qu'elle possède l'extension
-    <code>.shtml</code>, condition nécessaire pour que les directives
-    SSI qu'elle contient soient traitées.</p>
+    <p>Cette approche a pour désavantage de nécessiter, pour ajouter des SSI à
+    une page existante, de renommer le fichier (et de mettre à jour tous les
+    liens vers ce dernier) pour utiliser l’extension <code>.shtml</code>.</p>
 
-    <p>Une autre méthode consiste à utiliser la directive <directive
+    <p>La seconde approche consiste à utiliser la directive <directive
     module="mod_include">XBitHack</directive> :</p>
+
+<example>    
 <highlight language="config">
         XBitHack on
 </highlight>
+</example>
+
+    <p>La directive <directive module="mod_include">XBitHack</directive> indique
+    à httpd qu’il doit analyser tout fichier dont le bit d’exécution est
+    positionné. Ainsi, pour activer les SSI pour une page existante, il suffit
+    de rendre le fichier exécutable :</p>
 
-    <p>La directive <directive module="mod_include">XBitHack</directive>
-    indique à Apache qu'il doit rechercher des directivves SSI dans les
-    fichiers si leur bit d'exécution est positionné. Il n'est ainsi plus
-    nécessaire de changer le nom du fichier pour ajouter des directives
-    SSI à une page préexistante ; vous devez simplement attribuer les
-    droits d'exécution au fichier à l'aide de <code>chmod</code>.</p>
 <example>
-        chmod +x pagename.html
+<highlight language="bash">
+chmod +x pagename.html
+</highlight>
 </example>
-
-    <p>Un bref commentaire sur ce qu'il ne faut pas faire. Certaines
-    personnes peuvent vous conseiller de tout simplement indiquer à
-    Apache de rechercher des directives SSI dans tous les fichiers
-    <code>.html</code>, ce qui vous évite d'avoir à gérer les noms de
-    fichiers avec extension <code>.shtml</code>. Ils n'ont probablement
-    pas entendu parler de la directive <directive
-    module="mod_include">XBitHack</directive>. En effet, vous devez
-    garder à l'esprit qu'en faisant ceci, Apache va devoir rechercher
-    des directives SSI dans chaque fichier qu'il sert, même s'il n'en
-    contient aucune. Ce n'est donc pas une bonne idée car les
-    performances peuvent en être sensiblement affectées.</p>
-
-    <p>Bien entendu, sous Windows, il n'y a pas de bit d'exécution à
-    positionner, ce qui limite un peu vos choix.</p>
-
-    <p>Dans sa configuration par défaut, Apache n'envoie pas la date de
-    dernière modification ou les en-têtes HTTP relatifs à la taille des
-    contenus dans les pages SSI, car ses valeurs sont difficiles à
-    calculer pour les contenus dynamiques. Ceci peut induire une
-    impression de diminution des performances côté client, en empêchant
-    la mise en cache de votre document. Il existe deux méthodes pour
-    résoudre ce problème :</p>
+    
+    <note type="warning"><p>
+    Évitez de configurer httpd pour analyser <em>tous</em> les fichiers
+    <code>.html</code> pour y trouver des directives SSI. Cela force en effet le
+    serveur à parcourir tous les fichiers HTML qu’il sert, même ceux qui n’ont
+    pas de contenu SSI, ce qui ajoute une surcharge de travail inutile.
+    </p></note>
+
+    <p>Sous Windows, il n’y a pas de bit d’exécution ; l’approche avec la
+    directive <directive module="mod_include">XBitHack</directive> n’est donc
+    pas valable dans ce cas. Vous devrez alors utiliser l’approche par extension
+    de nom de fichier.</p>
+
+    <p>Par défaut, httpd n’envoie pas la date de dernière modification ou les
+    en-têtes content-length sur les pages SSI, car ces valeurs sont difficiles à
+    calculer pour un contenu dynamique. Cela peut empêcher la mise en cache et
+    induire un ressenti de performances plus lentes. Deux approches peuvent
+    aider :</p>    
 
     <ol>
-      <li>Utilisez la configuration <code>XBitHack Full</code>. Elle
-      indique à Apache de déterminer la date de dernière modification en
-      ne regardant que la date du fichier à l'origine de la requête,
-      tout en ignorant la date de modification de tout fichier inclus.</li>
-
-      <li>Utilisez les directives fournies par le module
-      <module>mod_expires</module> pour définir de manière explicite la
-      date d'expiration de vos fichiers, laissant par la-même
-      aux navigateurs et aux mandataires le soin de déterminer s'il est
-      opportun ou non de les mettre en cache.</li>
+      <li>Utilisez la directive <code>XBitHack Full</code> qui indique à httpd
+      qu’il doit déterminer la date de dernière modification à partir du fichier
+      initialement demandé, tout en ignorant les dates de dernière modification
+      des fichiers inclus.</li>
+
+      <li>Utilisez le module <module>mod_expires</module> pour définir un moment
+      d’expiration explicite, indiquant ainsi aux navigateurs et aux mandataires
+      que le contenu peut être mis en cache.</li>
+      
     </ol>
 </section>
 
 <section id="basic"><title>Directives SSI de base</title>
 
-    <p>Les directives SSI adoptent la syntaxe suivante :</p>
+    <p>Les directives SSI utilisent la syntaxe suivante :</p>
 <example>
-        &lt;!--#fonction attribut=valeur attribut=valeur ... --&gt;
+<highlight language="html">
+&lt;!--#function attribute=value attribute=value ... --&gt;
+</highlight> 
 </example>
 
-    <p>Le format d'une directive SSI étant similaire à celui d'un
-    commentaire HTML, si vous n'avez pas activé correctement SSI, le
-    navigateur l'ignorera, mais elle sera encore visible dans le source
-    HTML. Si SSI est correctement configuré, la directive sera remplacée
-    par ses résultats.</p>
-
-    <p>"fonction" peut prendre de nombreuses formes, et nous décrirons
-    plus précisément la plupart d'entre eux dans la prochaine version de
-    ce document. Pour le moment, voici quelques exemples de ce que vous
-    pouvez faire avec SSI.</p>
+    <p>Si les SSI sont correctement configurées, la directive sera remplacée par
+    sa sortie. Dans le cas contraire, elle demeurera en tant que commentaire
+    HTML — invisible à l’utilisateur final, mais présente dans le code source de
+    la page.</p>
 
 <section id="todaysdate"><title>La date courante</title>
 
 <example>
-        &lt;!--#echo var="DATE_LOCAL" --&gt;
+<highlight language="html">
+&lt;!--#echo var="DATE_LOCAL" --&gt;
+</highlight>
 </example>
 
-    <p>La fonction <code>echo</code> permet d'afficher la valeur d'une
-    variable. Il existe un grand nombre de variables standards, y
-    compris l'ensemble des variables d'environnement disponibles pour
-    les programmes CGI. De plus, vous pouvez définir vos propres
-    variables à l'aide de la fonction <code>set</code>.</p>
+    <p>La fonction <code>echo</code> a pour sortie la valeur d’une variable. Les
+    variables standard incluent le jeu complet de variables d’environnement
+    disponibles pour les programmes CGI, ainsi que les variables que vous pouvez
+    définir avec <code>set</code>.</p>
 
-    <p>Si vous n'aimez pas le format sous lequel la date s'affiche, vous
-    pouvez utiliser la fonction <code>config</code> avec un attribut
-    <code>timefmt</code>, pour le modifier.</p>
+    <p>Pour personnaliser le format de la date, utilisez la fonction
+    <code>config</code> avec l’attribut <code>timefmt</code> :</p>
 
 <example>
-        &lt;!--#config timefmt="%A %B %d, %Y" --&gt;<br />
-        Today is &lt;!--#echo var="DATE_LOCAL" --&gt;
+<highlight language="html">
+&lt;!--#config timefmt="%A %B %d, %Y" --&gt;<br />
+Today is &lt;!--#echo var="DATE_LOCAL" --&gt;
+</highlight>
 </example>
 </section>
 
 <section id="lastmodified"><title>Date de modification du fichier</title>
 
 <example>
-        Dernière modification du document &lt;!--#flastmod file="index.html" --&gt;
+<highlight language="html">
+Dernière modification du document &lt;!--#flastmod file="index.html" --&gt;
+</highlight>
 </example>
 
     <p>Le format peut là aussi être modifié à l'aide de l'attribut
@@ -236,12 +229,13 @@ AddOutputFilter INCLUDES .shtml
 
 <section id="cgi"><title>Inclusion des résultats d'un programme CGI</title>
 
-    <p>C'est le cas le plus courant d'utilisation des SSI - afficher les
-    résultats d'un programme CGI, comme l'universellement adoré
-    "compteur d'accès".</p>
+    <p>Les SSI permettent d’inclure directement la sortie d’un programme CGI
+    dans la page :</p>
 
 <example>
-        &lt;!--#include virtual="/cgi-bin/counter.pl" --&gt;
+<highlight language="html">
+&lt;!--#include virtual="/cgi-bin/counter.pl" --&gt;
+</highlight>
 </example>
 
 </section>
@@ -250,246 +244,216 @@ AddOutputFilter INCLUDES .shtml
 <section id="additionalexamples">
 <title>Exemples additionnels</title>
 
-    <p>Vous trouverez dans ce qui suit quelques exemples spécifiques de
-    ce que vous pouvez faire de vos documents HTML avec SSI.</p>
+    <p>Vous trouverez dans les exemples pratiques suivants des cas d’utilisation
+    courants des SSI.</p>
 
 <section id="docmodified"><title>Quand ce document a-t-il été modifié ?</title>
 
-    <p>Nous avons mentionné plus haut que vous pouviez utiliser SSI pour
-    informer l'utilisateur de la date de dernière modification du
-    document. Cependant, la méthode pour y parvenir n'a pas été vraiment
-    abordée. Placé dans votre document HTML, le code suivant va insérer
-    un repère de temps dans votre page. Bien entendu, SSI devra avoir
-    été correctement activé, comme décrit plus haut.</p>
-<example>
-        &lt;!--#config timefmt="%A %B %d, %Y" --&gt;<br />
-        Dernière modification du fichier &lt;!--#flastmod file="ssi.shtml" --&gt;
-</example>
+    <p>Une des utilisations courantes des SSI est l’affichage d’un horodatage
+    « date de dernière modification » sur chaque page. Le code suivant utilise
+    la variable <code>LAST_MODIFIED</code> ; vous pouvez donc coller le même
+    extrait dans tout fichier sans modifier son nom :</p>
 
-    <p>Bien entendu, vous devez remplacer <code>ssi.shtml</code> par le
-    nom du fichier auquel vous faites référence. Ceci ne conviendra pas
-    si vous recherchez un morceau de code générique que vous pourrez
-    insérer dans tout fichier ; dans ce cas, il est préférable
-    d'utiliser la variable <code>LAST_MODIFIED</code> :</p>
 <example>
-        &lt;!--#config timefmt="%D" --&gt;<br />
-        This file last modified &lt;!--#echo var="LAST_MODIFIED" --&gt;
+<highlight language="html">
+&lt;!--#config timefmt="%D" --&gt;<br />
+Date de dernière modification de ce fichier &lt;!--#echo var="LAST_MODIFIED" --&gt;
+</highlight>
+
 </example>
 
-    <p>Pour plus de détails sur le format <code>timefmt</code>, tapez
-    <code>strftime</code> dans votre moteur de recherche préferé. La
-    syntaxe est identique.</p>
+    <p>Pour des détails à propos des chaînes de formatage de
+    <code>timefmt</code>, voir la documentation de <code>strftime</code> dans le
+    manuel de référence de la bibliothèque C de votre système.</p>
 </section>
 
 <section id="standard-footer">
 <title>Inclusion d'un pied de page standard</title>
 
-    <p>Si le site que vous gérez comporte plus que quelques pages, vous
-    allez vite vous apercevoir qu'effectuer des modifications sur toutes
-    ces pages peut devenir très contraignant, en particulier si vous
-    voulez qu'elles conservent un aspect homogène.</p>
-
-    <p>Inclure un fichier pour un en-tête et/ou un pied de page peut
-    simplifier cette corvée de mises à jour. Il vous suffit de
-    confectionner un fichier de pied de page, et de l'inclure dans
-    chaque page à l'aide de l'élément SSI <code>include</code>. Pour
-    définir le fichier à inclure, la fonction <code>include</code> peut
-    utiliser soit l'attribut <code>file</code>, soit l'attribut
-    <code>virtual</code>. L'attribut <code>file</code> est un chemin de
-    fichier <em>relatif au répertoire courant</em>. C'est à dire qu'il
-    ne peut ni avoir pour valeur un chemin absolu (commençant par /), ni
-    comporter "../" dans son chemin. L'attribut <code>virtual</code> est
-    probablement plus commode, et peut spécifier une URL relative au
-    document servi. Elle peut commencer par un /, mais le fichier inclus
-    et le fichier servi doivent résider sur le même serveur.</p>
+        <p>Sur un site qui comporte plus que quelques pages, maintenir un
+       en-tête ou un pied de page cohérent sur toutes les pages peut s’avérer
+       fastidieux. Les SSI résolvent ce problème en permettant de stocker le
+       contenu partagé dans un seul fichier et d’inclure ce dernier n’importe
+       où :</p>
+
 <example>
-        &lt;!--#include virtual="/footer.html" --&gt;
+<highlight language="html">
+&lt;!--#include virtual="/footer.html" --&gt;
+</highlight>
 </example>
 
-    <p>Je combinerai souvent ces deux derniers points, en ajoutant une
-    directive <code>LAST_MODIFIED</code> dans un fichier de pied de page
-    destiné à être inclus. Le fichier inclus peut contenir des
-    directives SSI, et les inclusions peuvent être imbriquées - à
-    savoir, le fichier inclus peut inclure un autre fichier, etc...</p>
+    <p>La fonction <code>include</code> accepte deux attributs :
+    <code>file</code> qui spécifie un chemin relatif au répertoire actuel (il ne
+    peut pas spécifier un chemin absolu ou contenant <code>../</code>), et
+    <code>virtual</code> qui spécifie un URL relatif au document servi (et qui
+    peut commencer par <code>/</code>, mais doit être sur le même serveur).</p>
+
+    <p>Les directives SSI au sein des fichiers inclus sont évaluées normalement
+    et les inclusions peuvent être imbriquées. Cela signifie que vous pouvez
+    placer un horodatage <code>LAST_MODIFIED</code> dans votre fichier de pied
+    de page, et qu’il sera évalué dans le contexte de chaque page qui l’inclut.</p>
+
 </section>
 
 </section>
 
 <section id="config">
-<title>Que puis-je configurer d'autre ?</title>
+<title>Autres options de configuration</title>
 
-    <p>En plus du format de date, vous pouvez utiliser l'élément
-    <code>config</code> pour configurer deux autres choses.</p>
+    <p>En plus de <code>timefmt</code>, la fonction <code>config</code> accepte
+    deux autres attributs.</p>
 
-    <p>En général, lorsque quelque chose se passe mal avec votre
-    directive SSI, vous recevez le message :</p>
+    <p>L’attribut <code>errmsg</code> modifie le message d’erreur affiché
+    lorsqu’une directive SSI échoue. Le message par défaut est :</p>
 <example>
-        [an error occurred while processing this directive]
+[an error occurred while processing this directive]
 </example>
 
-    <p>Pour modifier ce message, vous pouvez utiliser l'attribut
-    <code>errmsg</code> avec la fonction <code>config</code> :</p>
+    <p>Vous pouvez le remplacer par un contenu plus adapté à votre site :</p>
 <example>
-        &lt;!--#config errmsg="[Il semblerait que vous ne sachiez pas
-       utiliser les SSI]" --&gt;
+<highlight language="html">
+&lt;!--#config errmsg="[Content unavailable]" --&gt;
+</highlight>
 </example>
 
-    <p>Il est cependant probable que les utilisateurs finaux ne voient
-    jamais ce message, car vous aurez résolu tous les problèmes issus de
-    vos directives SSI avant que votre site ne soit mis en production.
-    (N'est-ce pas ?)</p>
-
-    <p>Vous pouvez aussi modifier le format sous lequel les tailles de
-    fichiers sont affichées à l'aide de l'attribut <code>sizefmt</code>.
-    Vous pouvez spécifier <code>bytes</code> pour un affichage en
-    octets, ou <code>abbrev</code> pour un affichage plus concis en Ko
-    ou Mo, selon le cas.</p>
-    </section>
+    <p>L’attribut <code>sizefmt</code> contrôle la manière dont les tailles de
+    fichier sont spécifiées : <code>bytes</code> pour un décompte en octets ou
+    <code>abbrev</code> pour une forme abrégée en Ko ou Mo.</p>
+</section>
 
 <section id="exec">
     <title>Exécution de commandes</title>
 
-    <p>Voici autre chose que vous pouvez faire avec la fonction
-    <code>exec</code>. Vous pouvez vraiment faire exécuter une commande
-    par SSI en utilisant le shell (<code>/bin/sh</code>, pour être plus
-    précis - ou le shell DOS, si vous êtes sous Win32). Par exemple, ce
-    qui suit vous permet d'afficher le contenu d'un répertoire.</p>
-<example>
-        &lt;pre&gt;<br />
-        &lt;!--#exec cmd="ls" --&gt;<br />
-        &lt;/pre&gt;
-</example>
+    <p>La fonction <code>exec</code> permet d’exécuter une commande du shell et
+    d’inclure sa sortie dans la page. Sur les systèmes de style Unix, la
+    commande est exécutée via <code>/bin/sh</code>, et sous Windows via
+    l’interpréteur de commande.</p>
 
-    <p>ou, sous Windows</p>
 <example>
-        &lt;pre&gt;<br />
-        &lt;!--#exec cmd="dir" --&gt;<br />
-        &lt;/pre&gt;
+<highlight language="html">
+&lt;pre&gt;
+&lt;!--#exec cmd="ls" --&gt;
+&lt;/pre&gt;
+</highlight>
 </example>
+    <note type="warning"><p>
+    La fonctionnalité <code>exec</code> constitue un risque de sécurité
+    significatif. En effet, elle exécute des commandes arbitraires avec les
+    privilèges du processus du serveur web. Si les utilisateurs peuvent éditer
+    du contenu sur votre site, assurez-vous que cette fonctionnalité soit
+    désactivée en spécifiant <code>IncludesNOEXEC</code> au lieu de
+    <code>Includes</code> dans la définition de la directive <directive module="core"
+    >Options</directive>.
+    </p></note>
+</section>
 
-    <p>Vous noterez probablement l'étrange formatage provoqué par cette
-    directive sous Windows, car la sortie de <code>dir</code> contient
-    la chaîne  de caractères "&lt;<code>dir</code>&gt;", ce qui trompe le
-    navigateur.</p>
-
-    <p>Notez que cette fonctionnalité est très dangereuse, car elle va
-    permettre d'exécuter tout code associé à l'élément
-    <code>exec</code>. Si vous êtes dans la situation où les
-    utilisateurs peuvent éditer le contenu de vos pages web, dans le cas
-    d'un "livre d'or" par exemple, assurez-vous de désactiver cette
-    fonctionnalité. Vous pouvez, tout en permettant les SSI, désactiver
-    la fonctionnalité <code>exec</code> à l'aide de l'argument
-    <code>IncludesNOEXEC</code> de la directive
-    <code>Options</code>.</p>
-    </section>
+    
 
 <section id="advanced">
 <title>Techniques SSI avancées</title>
 
-    <p>Outre l'affichage de contenu, les SSI d'Apache vous permettent de
-    définir des variables, et de les utiliser dans des comparaisons et
-    des conditions.</p>
+    <p>Au-delà de la simple inclusion de contenu, les SSI prennent en charge les
+    variables et les expressions conditionnelles, rendant possible la génération
+    de contenus différents en fonction du contexte de la requête.</p>
 
 <section id="variables"><title>Définition de variables</title>
 
-    <p>Avec l'élément <code>set</code>, vous pouvez définir des
-    variables pour un usage ultérieur. Comme nous en aurons besoin plus
-    loin, nous allons en parler tout de suite. La syntaxe se présente
-    comme suit :</p>
+    <p>La directive <code>set</code> permet de définir des variables à utiliser
+    plus tard dans la page :</p>
+
 <example>
-        &lt;!--#set var="name" value="Rich" --&gt;
+<highlight language="html">
+&lt;!--#set var="name" value="Rich" --&gt;
+</highlight>
 </example>
 
-    <p>Pour affecter une valeur à vos variables, en plus de la
-    définition littérale de l'exemple ci-dessus, vous pouvez utiliser
-    une autre variable, y compris les <a
-    href="../env.html">variables d'environnement</a>, ou les variables
-    décrites plus haut (comme <code>LAST_MODIFIED</code> par exemple).
-    Pour indiquer qu'il s'agit d'une variable et non d'une chaîne, vous
-    devez utiliser le symbole dollar ($) devant le nom de la
-    variable.</p>
+    <p>Les variables peuvent référencer d’autres variables (y compris des <a
+    href="../env.html">variables d’environnement</a>) en utilisant le signe dollar
+    (<code>$</code>) comme préfixe :</p>
 
-    <example> &lt;!--#set var="modified" value="$LAST_MODIFIED" --&gt;
-    </example>
+<example>
+<highlight language="html">
+&lt;!--#set var="modified" value="$LAST_MODIFIED" --&gt;
+</highlight>
+</example>
+
+    <p>Pour inclure un signe dollar littéral, protégez-le avec une
+    contre-oblique :</p>
 
-    <p>Pour insérer un caractère $ dans la valeur de votre variable,
-    vous devez l'échapper à l'aide d'un backslash.</p>
 <example>
-        &lt;!--#set var="cost" value="\$100" --&gt;
+<highlight language="html">
+&lt;!--#set var="cost" value="\$100" --&gt;
+</highlight>
 </example>
 
-    <p>Enfin, si vous voulez insérer une variable dans une chaîne, et
-    s'il y a une chance pour que le nom de la variable se confonde avec
-    le reste de la chaîne, vous pouvez l'entourer d'accolades pour
-    eviter toute confusion (Il est difficile de trouver un bon exemple
-    pour illustrer ceci, mais j'espère que vous comprendrez).</p>
+    <p>Lorsqu'un nom de variable risque d'être ambigu au sein d'une chaîne plus
+    longue, utilisez des accolades pour le délimiter :</p>
+
 <example>
-        &lt;!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" --&gt;
+<highlight language="html">
+&lt;!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" --&gt;
+</highlight>
 </example>
 </section>
 
 <section id="conditional">
 <title>Expressions conditionnelles</title>
 
-    <p>Maintenent que nous avons des variables, et que nous pouvons
-    définir et comparer leurs valeurs, nous sommes à même de les
-    utiliser dans des expressions conditionnelles. Ceci confère à SSI le
-    statut de petit langage de programmation.
-    <module>mod_include</module> fournit une structure <code>if</code>,
-    <code>elif</code>, <code>else</code>, <code>endif</code> pour la
-    construction d'expressions conditionnelles, ce qui vous permet de
-    générer plusieurs pages logiques à partir d'une seule vraie
-    page.</p>
-
-    <p>La structure de l'expression conditionnelle est :</p>
+    <p><module>mod_include</module> fournit les éléments <code>if</code>,
+    <code>elif</code>, <code>else</code> et <code>endif</code> permettant de
+    construire une logique conditionnelle. Cette fonctionnalité permet de
+    générer des sorties différentes à partir d’une seule page physique.</p>
+
+    <p>La structure est :</p>
+
 <example>
-    &lt;!--#if expr="condition" --&gt;<br />
-    &lt;!--#elif expr="condition" --&gt;<br />
-    &lt;!--#else --&gt;<br />
-    &lt;!--#endif --&gt;
+<highlight language="html">
+&lt;!--#if expr="test_condition" --&gt;<br />
+&lt;!--#elif expr="test_condition" --&gt;<br />
+&lt;!--#else --&gt;<br />
+&lt;!--#endif --&gt;
+</highlight>
 </example>
 
-    <p>Une <em>condition</em> peut revêtir la forme de toute comparaison
-    logique - soit une comparaison de valeurs avec une autre, soit une
-    vérification de la "vérité" d'une valeur particulière (Une chaîne
-    donnée est vraie si elle n'est pas vide). Pour une liste exhaustive
-    des opérateurs de comparaison disponibles, voir la documentation du
-    module <module>mod_include</module>.</p>
+    <p>Une <em>test_condition</em> peut comparer des valeurs ou vérifier si une
+    variable n’est pas vide. Voir la documentation de
+    <module>mod_include</module> pour la liste complète des opérateurs de
+    comparaison.</p>
 
-    <p>Par exemple, spour insérer l'heure du jour dans votre page web,
-    vous pouvez ajouter ces lignes dans la page HTML :</p>
+    <p>Par exemple, pour afficher des salutations différentes en fonction de
+    l’heure du jour :</p>
 
-    <example>
-    Good
-    &lt;!--#if expr="%{TIME_HOUR} &lt;12" --&gt;<br />
-    morning!<br />
-    &lt;!--#else --&gt;<br />
-    afternoon!<br />
-    &lt;!--#endif --&gt;<br />
-    </example>    
-
-    <p>Toute autre variable (que vous avez définie, ou une variable
-    d'environnement normale) peut être utilisée dans les expressions
-    conditionnelles. Voir le document <a href="../expr.html">Expressions
-    rationnelles dans le serveur HTTP Apache</a> pour plus de détails à
-    propos du fonctionnement du moteur d'évaluation des expressions
-    rationnelles.</p>
-    
-    <p>Associée à la possibilité avec Apache de définir
-    des variables d'environnement à l'aide de directives
-    <code>SetEnvIf</code>, ainsi que d'autres directives en rapport,
-    cette fonctionnalité vous permet d'ajouter une grande variété
-    de contenus dynamiques côté serveur sans avoir à concevoir une
-    application web de A à Z.</p>
+<example>
+<highlight language="html">
+Good
+&lt;!--#if expr="%{TIME_HOUR} &lt;12" --&gt;<br />
+morning!<br />
+&lt;!--#else --&gt;<br />
+afternoon!<br />
+&lt;!--#endif --&gt;<br />
+</highlight>
+</example>    
+
+    <p>Toute variable — définie par l’utilisateur ou issue de l’environnement
+    — peut être utilisée dans les expressions conditionnelles. Voir <a
+    href="../expr.html">Les expressions dans le Serveur HTTP Apache</a> pour des
+    détails complets à propos du moteur d’évaluation des expressions.</p>
+
+    <p>Combinées avec la capacité de httpd à définir des variables
+    d’environnement en utilisant <directive
+    module="mod_setenvif">SetEnvIf</directive> et les directives apparentées,
+    les SSI conditionnelles peuvent traiter une grande variété de scénarios de
+    contenu dynamique sans nécessiter de cadriciel complet d’applications.</p>
 </section>
 </section>
 
 <section id="conclusion"><title>Conclusion</title>
 
-    <p>SSI ne remplace certainement pas CGI, ou d'autres technologies
-    utilisées pour la génération de pages web dynamiques. Mais c'est une
-    bonne méthode pour ajouter des petits contenus dynamiques à vos
-    pages, sans devoir fournir un gros effort supplémentaire.</p>
+    <p>Pour les sites principalement statiques mais nécessitant quelques touches
+    dynamiques, les SSI évitent la surcharge de travail induite par la
+    configuration d’une pile complète d’applications. Elles ne requièrent que
+    <module>mod_include</module> et quelques lignes de configuration pour
+    fonctionner.</p>
 </section>
 
 </manualpage>