You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@apache.org on 2009/04/23 06:58:02 UTC
svn commit: r767794 [5/8] - in /httpd/httpd/trunk/docs/manual: ./ faq/
howto/ misc/ mod/
Modified: httpd/httpd/trunk/docs/manual/howto/ssi.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/howto/ssi.html.fr?rev=767794&r1=767793&r2=767794&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/howto/ssi.html.fr (original)
+++ httpd/httpd/trunk/docs/manual/howto/ssi.html.fr Thu Apr 23 04:58:00 2009
@@ -1,499 +1,499 @@
-<?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><!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Tutoriel Apache : Introduction aux "Inclusions Côté Serveur"
-(Server Side Includes - SSI) - Serveur Apache HTTP</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 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="../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.3</p>
-<img alt="" src="../images/feather.gif" /></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.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"
-(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"><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></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>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. 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>
-<div class="example"><p><code>
- Options +Includes
-</code></p></div>
-
- <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>
-<div class="example"><p><code>
- AddType text/html .shtml<br />
- AddOutputFilter INCLUDES .shtml
-</code></p></div>
-
- <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>
-<div class="example"><p><code>
- XBitHack on
-</code></p></div>
-
- <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>
- <!--#élément 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>"élément" 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>L'élément <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 l'élément <code>set</code>.</p>
-
- <p>Si vous n'aimez pas le format sous lequel la date s'affiche, vous
- pouvez utiliser l'élément <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, l'élément <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 l'élément <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>J'ai pour projet, dans les prochains mois, d'écrire un article à
- propos de l'utilisation des SSI avec des petits programmes CGI. Pour
- l'instant, voici ce que vous pouvez faire avec l'élément
- <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="caveat" id="caveat">Mise en garde</a></h3>
-
- <p>La plupart des fonctionnalités décrites dans cet article ne sont
- disponibles que si vous utilisez la version 1.2 ou supérieure
- d'Apache. Bien entendu, si ce n'est pas le cas, vous devez faire une
- mise à jour immédiatement, et même plus tôt. Allez-y. Faites-le
- maintenant. Nous attendrons.</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>. Voici quelques exemples
- illustrant l'utilisation de ces expressions.</p>
-
- <p>Vous pouvez ajouter les lignes suivantes dans votre fichier de
- configuration :</p>
-<div class="example"><p><code>
- BrowserMatchNoCase macintosh Mac<br />
- BrowserMatchNoCase MSIE InternetExplorer
-</code></p></div>
-
- <p>Ces lignes définissent les variables d'environnement "Mac" et
- "InternetExplorer" à true, si le client utilise InternetExplorer sur
- un Macintosh.</p>
-
- <p>Puis, dans votre document où les SSI sont activées, vous ajoutez
- ceci :</p>
-<div class="example"><p><code>
- <!--#if expr="${Mac} && ${InternetExplorer}" --><br />
- Un texte d'excuses est inséré ici<br />
- <!--#else --><br />
- Ici se trouve du code JavaScipt sympa<br />
- <!--#endif -->
-</code></p></div>
-
- <p>Notez que je n'ai rien contre IE sur Macintosh - J'ai juste
- phosphoré quelques heures la semaine dernière pour faire fonctionner
- du JavaScript sous IE sur Macintosh, alors qu'il fonctionnait sous
- tout autre environnement. Ce qui précède a constitué un
- contournement provisoire.</p>
-
- <p>Toute autre variable (que vous avez définie, ou une variable
- d'environnement normale) peut être utilisée dans les expressions
- conditionnelles. 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 des contenus dynamiques
- assez évolués sans avoir recours aux programmes CGI.</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 id="footer">
-<p class="apache">Copyright 2009 The Apache Software Foundation.<br />Authorisé 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="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div>
+<?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><!--
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ This file is generated from xml source: DO NOT EDIT
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ -->
+<title>Tutoriel Apache : Introduction aux "Inclusions Côté Serveur"
+(Server Side Includes - SSI) - Serveur Apache HTTP</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 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="../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.3</p>
+<img alt="" src="../images/feather.gif" /></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.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"
+(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"><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></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>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. 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>
+<div class="example"><p><code>
+ Options +Includes
+</code></p></div>
+
+ <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>
+<div class="example"><p><code>
+ AddType text/html .shtml<br />
+ AddOutputFilter INCLUDES .shtml
+</code></p></div>
+
+ <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>
+<div class="example"><p><code>
+ XBitHack on
+</code></p></div>
+
+ <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>
+ <!--#élément 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>"élément" 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>L'élément <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 l'élément <code>set</code>.</p>
+
+ <p>Si vous n'aimez pas le format sous lequel la date s'affiche, vous
+ pouvez utiliser l'élément <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, l'élément <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 l'élément <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>J'ai pour projet, dans les prochains mois, d'écrire un article à
+ propos de l'utilisation des SSI avec des petits programmes CGI. Pour
+ l'instant, voici ce que vous pouvez faire avec l'élément
+ <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="caveat" id="caveat">Mise en garde</a></h3>
+
+ <p>La plupart des fonctionnalités décrites dans cet article ne sont
+ disponibles que si vous utilisez la version 1.2 ou supérieure
+ d'Apache. Bien entendu, si ce n'est pas le cas, vous devez faire une
+ mise à jour immédiatement, et même plus tôt. Allez-y. Faites-le
+ maintenant. Nous attendrons.</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>. Voici quelques exemples
+ illustrant l'utilisation de ces expressions.</p>
+
+ <p>Vous pouvez ajouter les lignes suivantes dans votre fichier de
+ configuration :</p>
+<div class="example"><p><code>
+ BrowserMatchNoCase macintosh Mac<br />
+ BrowserMatchNoCase MSIE InternetExplorer
+</code></p></div>
+
+ <p>Ces lignes définissent les variables d'environnement "Mac" et
+ "InternetExplorer" à true, si le client utilise InternetExplorer sur
+ un Macintosh.</p>
+
+ <p>Puis, dans votre document où les SSI sont activées, vous ajoutez
+ ceci :</p>
+<div class="example"><p><code>
+ <!--#if expr="${Mac} && ${InternetExplorer}" --><br />
+ Un texte d'excuses est inséré ici<br />
+ <!--#else --><br />
+ Ici se trouve du code JavaScipt sympa<br />
+ <!--#endif -->
+</code></p></div>
+
+ <p>Notez que je n'ai rien contre IE sur Macintosh - J'ai juste
+ phosphoré quelques heures la semaine dernière pour faire fonctionner
+ du JavaScript sous IE sur Macintosh, alors qu'il fonctionnait sous
+ tout autre environnement. Ce qui précède a constitué un
+ contournement provisoire.</p>
+
+ <p>Toute autre variable (que vous avez définie, ou une variable
+ d'environnement normale) peut être utilisée dans les expressions
+ conditionnelles. 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 des contenus dynamiques
+ assez évolués sans avoir recours aux programmes CGI.</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 id="footer">
+<p class="apache">Copyright 2009 The Apache Software Foundation.<br />Authorisé 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="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div>
</body></html>
\ No newline at end of file
Propchange: httpd/httpd/trunk/docs/manual/howto/ssi.html.fr
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpd/httpd/trunk/docs/manual/howto/ssi.xml.fr
------------------------------------------------------------------------------
svn:eol-style = native
Modified: httpd/httpd/trunk/docs/manual/misc/index.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/misc/index.html.fr?rev=767794&r1=767793&r2=767794&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/misc/index.html.fr (original)
+++ httpd/httpd/trunk/docs/manual/misc/index.html.fr Thu Apr 23 04:58:00 2009
@@ -1,86 +1,86 @@
-<?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><!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Documentations diverses sur Apache - Serveur Apache HTTP</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 href="../images/favicon.ico" rel="shortcut icon" /></head>
-<body id="manual-page" class="no-sidebar"><div id="page-header">
-<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>
-<p class="apache">Serveur Apache HTTP Version 2.3</p>
-<img alt="" src="../images/feather.gif" /></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.3</a></div><div id="page-content"><div id="preamble"><h1>Documentations diverses sur Apache</h1>
-<div class="toplang">
-<p><span>Langues Disponibles: </span><a href="../en/misc/" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../fr/misc/" title="Français"> fr </a> |
-<a href="../ko/misc/" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/misc/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
-</div>
-
-
- <p>Vous trouverez plus loin une liste de pages de documentation
- additionnelles concernant le projet de développement du serveur web
- Apache.</p>
-
- <div class="warning"><h3>Avertissement</h3>
- <p>La mise à jour des documents ci-dessous permettant de prendre en
- compte les modifications apportées par la version 2.1 du serveur
- HTTP Apache n'a pas été entièrement menée à bien. Certaines
- informations sont probablement encore pertinentes, mais utilisez-les tout de même avec
- précautions.</p>
- </div>
-
- <dl>
- <dt><a href="perf-tuning.html">Notes à propos des performances -
- Réglages fins d'Apache</a></dt>
-
- <dd>
- <p>Notes à propos de la configuration d'Apache pour de plus
- hautes performances (à l'exécution et à la compilation). Notes
- expliquant pourquoi Apache accomplit certaines choses et
- n'en accomplit pas certaines autres (les premières l'accélérant
- et les deuxièmes le ralentissant).</p>
- </dd>
-
- <dt><a href="security_tips.html">Conseils concernant la
- sécurité</a></dt>
-
- <dd>
- <p>Quelques conseils de type "faites" ou "ne faites pas" pour
- que votre site web Apache reste sécurisé.</p>
- </dd>
-
- <dt><a href="relevant_standards.html">Standards concernés</a></dt>
-
- <dd>
- <p>Ce document constitue une page de référence pour la plupart
- des standards concernés par Apache.</p>
- </dd>
-
- <dt><a href="password_encryptions.html">Formats de chiffrement des
- mots de passe</a></dt>
-
- <dd>
- <p>Discussion à propos des divers algorithmes de chiffrement
- supportés par Apache à des fins d'authentification.</p>
- </dd>
- </dl>
-
- </div>
-</div>
-<div class="bottomlang">
-<p><span>Langues Disponibles: </span><a href="../en/misc/" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../fr/misc/" title="Français"> fr </a> |
-<a href="../ko/misc/" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/misc/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2009 The Apache Software Foundation.<br />Authorisé 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="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div>
+<?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><!--
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ This file is generated from xml source: DO NOT EDIT
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ -->
+<title>Documentations diverses sur Apache - Serveur Apache HTTP</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 href="../images/favicon.ico" rel="shortcut icon" /></head>
+<body id="manual-page" class="no-sidebar"><div id="page-header">
+<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>
+<p class="apache">Serveur Apache HTTP Version 2.3</p>
+<img alt="" src="../images/feather.gif" /></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.3</a></div><div id="page-content"><div id="preamble"><h1>Documentations diverses sur Apache</h1>
+<div class="toplang">
+<p><span>Langues Disponibles: </span><a href="../en/misc/" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../fr/misc/" title="Français"> fr </a> |
+<a href="../ko/misc/" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
+<a href="../tr/misc/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
+</div>
+
+
+ <p>Vous trouverez plus loin une liste de pages de documentation
+ additionnelles concernant le projet de développement du serveur web
+ Apache.</p>
+
+ <div class="warning"><h3>Avertissement</h3>
+ <p>La mise à jour des documents ci-dessous permettant de prendre en
+ compte les modifications apportées par la version 2.1 du serveur
+ HTTP Apache n'a pas été entièrement menée à bien. Certaines
+ informations sont probablement encore pertinentes, mais utilisez-les tout de même avec
+ précautions.</p>
+ </div>
+
+ <dl>
+ <dt><a href="perf-tuning.html">Notes à propos des performances -
+ Réglages fins d'Apache</a></dt>
+
+ <dd>
+ <p>Notes à propos de la configuration d'Apache pour de plus
+ hautes performances (à l'exécution et à la compilation). Notes
+ expliquant pourquoi Apache accomplit certaines choses et
+ n'en accomplit pas certaines autres (les premières l'accélérant
+ et les deuxièmes le ralentissant).</p>
+ </dd>
+
+ <dt><a href="security_tips.html">Conseils concernant la
+ sécurité</a></dt>
+
+ <dd>
+ <p>Quelques conseils de type "faites" ou "ne faites pas" pour
+ que votre site web Apache reste sécurisé.</p>
+ </dd>
+
+ <dt><a href="relevant_standards.html">Standards concernés</a></dt>
+
+ <dd>
+ <p>Ce document constitue une page de référence pour la plupart
+ des standards concernés par Apache.</p>
+ </dd>
+
+ <dt><a href="password_encryptions.html">Formats de chiffrement des
+ mots de passe</a></dt>
+
+ <dd>
+ <p>Discussion à propos des divers algorithmes de chiffrement
+ supportés par Apache à des fins d'authentification.</p>
+ </dd>
+ </dl>
+
+ </div>
+</div>
+<div class="bottomlang">
+<p><span>Langues Disponibles: </span><a href="../en/misc/" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../fr/misc/" title="Français"> fr </a> |
+<a href="../ko/misc/" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
+<a href="../tr/misc/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
+</div><div id="footer">
+<p class="apache">Copyright 2009 The Apache Software Foundation.<br />Authorisé 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="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div>
</body></html>
\ No newline at end of file
Propchange: httpd/httpd/trunk/docs/manual/misc/index.html.fr
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpd/httpd/trunk/docs/manual/misc/index.xml.fr
------------------------------------------------------------------------------
svn:eol-style = native