| <?xml version="1.0" encoding="ISO-8859-1"?> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> |
| <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> |
| <!-- |
| XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| This file is generated from xml source: DO NOT EDIT |
| XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| --> |
| <title>Tutoriel Apache httpd : Introduction aux "Inclusions Côté Serveur" |
| (Server Side Includes - SSI) - Serveur Apache HTTP Version 2.4</title> |
| <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> |
| <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> |
| <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" /> |
| <script src="../style/scripts/prettify.min.js" type="text/javascript"> |
| </script> |
| |
| <link href="../images/favicon.ico" rel="shortcut icon" /></head> |
| <body id="manual-page"><div id="page-header"> |
| <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> |
| <p class="apache">Serveur Apache HTTP Version 2.4</p> |
| <img alt="" src="../images/feather.png" /></div> |
| <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> |
| <div id="path"> |
| <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="./">Recettes et tutoriels</a></div><div id="page-content"><div id="preamble"><h1>Tutoriel Apache httpd : Introduction aux "Inclusions Côté Serveur" |
| (Server Side Includes - SSI)</h1> |
| <div class="toplang"> |
| <p><span>Langues Disponibles: </span><a href="../en/howto/ssi.html" hreflang="en" rel="alternate" title="English"> en </a> | |
| <a href="../fr/howto/ssi.html" title="Français"> fr </a> | |
| <a href="../ja/howto/ssi.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | |
| <a href="../ko/howto/ssi.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> |
| </div> |
| |
| <p>Les SSI permettent d'ajouter du contenu dynamique à des documents |
| HTML préexistants.</p> |
| </div> |
| <div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">Introduction</a></li> |
| <li><img alt="" src="../images/down.gif" /> <a href="#what">Qu'est-ce que SSI ?</a></li> |
| <li><img alt="" src="../images/down.gif" /> <a href="#configuring">Configurer votre serveur pour permettre les SSI</a></li> |
| <li><img alt="" src="../images/down.gif" /> <a href="#basic">Directives SSI de base</a></li> |
| <li><img alt="" src="../images/down.gif" /> <a href="#additionalexamples">Exemples additionnels</a></li> |
| <li><img alt="" src="../images/down.gif" /> <a href="#config">Que puis-je configurer d'autre ?</a></li> |
| <li><img alt="" src="../images/down.gif" /> <a href="#exec">Exécution de commandes</a></li> |
| <li><img alt="" src="../images/down.gif" /> <a href="#advanced">Techniques SSI avancées</a></li> |
| <li><img alt="" src="../images/down.gif" /> <a href="#conclusion">Conclusion</a></li> |
| </ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> |
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="related" id="related">Introduction</a></h2> |
| <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> |
| |
| <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> |
| |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="what" id="what">Qu'est-ce que SSI ?</a></h2> |
| |
| <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> |
| |
| <div class="example"><p><code> |
| <!--#echo var="DATE_LOCAL" --> |
| </code></p></div> |
| |
| <p>Ainsi, lorsque la page sera servie, la directive sera évaluée et |
| remplacée par sa valeur :</p> |
| |
| <div class="example"><p><code> |
| Tuesday, 15-Jan-2013 19:28:54 EST |
| </code></p></div> |
| |
| <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> |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="configuring" id="configuring">Configurer votre serveur pour permettre les SSI</a></h2> |
| |
| |
| <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> |
| <pre class="prettyprint lang-config">Options +Includes</pre> |
| |
| |
| <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 <code class="directive"><a href="../mod/core.html#options">Options</a></code> |
| 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> |
| <pre class="prettyprint lang-config">AddType text/html .shtml |
| AddOutputFilter INCLUDES .shtml</pre> |
| |
| |
| <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>Une autre méthode consiste à utiliser la directive <code class="directive"><a href="../mod/mod_include.html#xbithack">XBitHack</a></code> :</p> |
| <pre class="prettyprint lang-config">XBitHack on</pre> |
| |
| |
| <p>La directive <code class="directive"><a href="../mod/mod_include.html#xbithack">XBitHack</a></code> |
| 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> |
| <div class="example"><p><code> |
| chmod +x pagename.html |
| </code></p></div> |
| |
| <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 <code class="directive"><a href="../mod/mod_include.html#xbithack">XBitHack</a></code>. 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> |
| |
| <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 |
| <code class="module"><a href="../mod/mod_expires.html">mod_expires</a></code> 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> |
| </ol> |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="basic" id="basic">Directives SSI de base</a></h2> |
| |
| <p>Les directives SSI adoptent la syntaxe suivante :</p> |
| <div class="example"><p><code> |
| <!--#fonction attribut=valeur attribut=valeur ... --> |
| </code></p></div> |
| |
| <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> |
| |
| <h3><a name="todaysdate" id="todaysdate">La date courante</a></h3> |
| |
| <div class="example"><p><code> |
| <!--#echo var="DATE_LOCAL" --> |
| </code></p></div> |
| |
| <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>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> |
| |
| <div class="example"><p><code> |
| <!--#config timefmt="%A %B %d, %Y" --><br /> |
| Today is <!--#echo var="DATE_LOCAL" --> |
| </code></p></div> |
| |
| |
| <h3><a name="lastmodified" id="lastmodified">Date de modification du fichier</a></h3> |
| |
| <div class="example"><p><code> |
| Dernière modification du document <!--#flastmod file="index.html" --> |
| </code></p></div> |
| |
| <p>Le format peut là aussi être modifié à l'aide de l'attribut |
| <code>timefmt</code>.</p> |
| |
| |
| <h3><a name="cgi" id="cgi">Inclusion des résultats d'un programme CGI</a></h3> |
| |
| <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> |
| |
| <div class="example"><p><code> |
| <!--#include virtual="/cgi-bin/counter.pl" --> |
| </code></p></div> |
| |
| |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="additionalexamples" id="additionalexamples">Exemples additionnels</a></h2> |
| |
| |
| <p>Vous trouverez dans ce qui suit quelques exemples spécifiques de |
| ce que vous pouvez faire de vos documents HTML avec SSI.</p> |
| |
| <h3><a name="docmodified" id="docmodified">Quand ce document a-t-il été modifié ?</a></h3> |
| |
| <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> |
| <div class="example"><p><code> |
| <!--#config timefmt="%A %B %d, %Y" --><br /> |
| Dernière modification du fichier <!--#flastmod file="ssi.shtml" --> |
| </code></p></div> |
| |
| <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> |
| <div class="example"><p><code> |
| <!--#config timefmt="%D" --><br /> |
| This file last modified <!--#echo var="LAST_MODIFIED" --> |
| </code></p></div> |
| |
| <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> |
| |
| |
| <h3><a name="standard-footer" id="standard-footer">Inclusion d'un pied de page standard</a></h3> |
| |
| |
| <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> |
| <div class="example"><p><code> |
| <!--#include virtual="/footer.html" --> |
| </code></p></div> |
| |
| <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> |
| |
| |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="config" id="config">Que puis-je configurer d'autre ?</a></h2> |
| |
| |
| <p>En plus du format de date, vous pouvez utiliser l'élément |
| <code>config</code> pour configurer deux autres choses.</p> |
| |
| <p>En général, lorsque quelque chose se passe mal avec votre |
| directive SSI, vous recevez le message :</p> |
| <div class="example"><p><code> |
| [an error occurred while processing this directive] |
| </code></p></div> |
| |
| <p>Pour modifier ce message, vous pouvez utiliser l'attribut |
| <code>errmsg</code> avec la fonction <code>config</code> :</p> |
| <div class="example"><p><code> |
| <!--#config errmsg="[Il semblerait que vous ne sachiez pas |
| utiliser les SSI]" --> |
| </code></p></div> |
| |
| <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> |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="exec" id="exec">Exécution de commandes</a></h2> |
| |
| |
| <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> |
| <div class="example"><p><code> |
| <pre><br /> |
| <!--#exec cmd="ls" --><br /> |
| </pre> |
| </code></p></div> |
| |
| <p>ou, sous Windows</p> |
| <div class="example"><p><code> |
| <pre><br /> |
| <!--#exec cmd="dir" --><br /> |
| </pre> |
| </code></p></div> |
| |
| <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 "<<code>dir</code>>", 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> |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="advanced" id="advanced">Techniques SSI avancées</a></h2> |
| |
| |
| <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> |
| |
| <h3><a name="variables" id="variables">Définition de variables</a></h3> |
| |
| <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> |
| <div class="example"><p><code> |
| <!--#set var="name" value="Rich" --> |
| </code></p></div> |
| |
| <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> |
| |
| <div class="example"><p><code> <!--#set var="modified" value="$LAST_MODIFIED" --> |
| </code></p></div> |
| |
| <p>Pour insérer un caractère $ dans la valeur de votre variable, |
| vous devez l'échapper à l'aide d'un backslash.</p> |
| <div class="example"><p><code> |
| <!--#set var="cost" value="\$100" --> |
| </code></p></div> |
| |
| <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> |
| <div class="example"><p><code> |
| <!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" --> |
| </code></p></div> |
| |
| |
| <h3><a name="conditional" id="conditional">Expressions conditionnelles</a></h3> |
| |
| |
| <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. |
| <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> 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> |
| <div class="example"><p><code> |
| <!--#if expr="condition" --><br /> |
| <!--#elif expr="condition" --><br /> |
| <!--#else --><br /> |
| <!--#endif --> |
| </code></p></div> |
| |
| <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 <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>.</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> |
| |
| <div class="example"><p><code> |
| Good |
| <!--#if expr="%{TIME_HOUR} <12" --><br /> |
| morning!<br /> |
| <!--#else --><br /> |
| afternoon!<br /> |
| <!--#endif --><br /> |
| </code></p></div> |
| |
| <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> |
| |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="conclusion" id="conclusion">Conclusion</a></h2> |
| |
| <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> |
| </div></div> |
| <div class="bottomlang"> |
| <p><span>Langues Disponibles: </span><a href="../en/howto/ssi.html" hreflang="en" rel="alternate" title="English"> en </a> | |
| <a href="../fr/howto/ssi.html" title="Français"> fr </a> | |
| <a href="../ja/howto/ssi.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | |
| <a href="../ko/howto/ssi.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> |
| </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> |
| <script type="text/javascript"><!--//--><![CDATA[//><!-- |
| var comments_shortname = 'httpd'; |
| var comments_identifier = 'http://httpd.apache.org/docs/2.4/howto/ssi.html'; |
| (function(w, d) { |
| if (w.location.hostname.toLowerCase() == "httpd.apache.org") { |
| d.write('<div id="comments_thread"><\/div>'); |
| var s = d.createElement('script'); |
| s.type = 'text/javascript'; |
| s.async = true; |
| s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; |
| (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); |
| } |
| else { |
| d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); |
| } |
| })(window, document); |
| //--><!]]></script></div><div id="footer"> |
| <p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> |
| <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[//><!-- |
| if (typeof(prettyPrint) !== 'undefined') { |
| prettyPrint(); |
| } |
| //--><!]]></script> |
| </body></html> |