From: Lucien Gentis Les fichiers Les fichiers .htaccess fournissent une méthode pour
-modifier la configuration du serveur au niveau de chaque répertoire..htaccess fournissent une méthode pour
+modifier la configuration du serveur au niveau de chaque répertoire.
.htaccess ne doivent être utilisés
- que si vous n'avez pas accès au fichier de configuration du serveur
+ .htaccess ne doivent être utilisés
+ que si vous n'avez pas accès au fichier de configuration du serveur
principal. L'utilisation des fichiers .htaccess
ralentit le fonctionnement de votre serveur HTTP Apache. Il est toujours
- préférable de définir les directives que vous pouvez inclure dans un
+ préférable de définir les directives que vous pouvez inclure dans un
fichier .htaccess dans une section Les fichiers .htaccess (ou "fichiers de
- configuration distribués") fournissent une méthode pour modifier la
- configuration du serveur au niveau d'un répertoire. Un fichier,
- contenant une ou plusieurs directives de configuration, est placé
- dans un répertoire de documents particulier, et ses directives
- s'appliquent à ce répertoire et à tous ses sous-répertoires.
Si vous voulez donner un autre nom à votre fichier +
Si vous voulez donner un autre nom à votre fichier
.htaccess, vous pouvez le faire en utilisant la
directive .config, vous pouvez mettre ceci dans le fichier de
configuration de votre serveur :
En général, les fichiers .htaccess utilisent la même
+
En général, les fichiers .htaccess utilisent la même
syntaxe que les fichiers de
configuration principaux. Ce que vous pouvez mettre dans ces
- fichier est déterminé par la directive .htaccess. Si une
directive est permise dans un fichier .htaccess file,
la documentation de cette directive contiendra une section Override,
- spécifiant quelle valeur doit prendre
Par exemple, si vous regardez la documentation de la directive
.htaccess (Voir la ligne de contexte dans le résumé de
+ que cette dernière est permise dans les fichiers
+ .htaccess (Voir la ligne de contexte dans le résumé de
la directive). La ligne Override indique
FileInfo. Vous devez donc avoir au moins
AllowOverride FileInfo pour que cette directive soit
- traitée dans les fichiers .htaccess.
.htaccess.
Si vous n'êtes pas sûr qu'une directive particulière soit permise +
Si vous n'êtes pas sûr qu'une directive particulière soit permise
dans un fichier .htaccess, lisez la documentation de
cette directive, et consultez la ligne de contexte pour
".htaccess".
En principe, vous ne devriez utiliser les fichiers
- .htaccess que lorsque vous n'avez pas accès au fichier de
+ .htaccess que lorsque vous n'avez pas accès au fichier de
configuration du serveur principal. Par exemple, la fausse
- idée
+ idée
selon laquelle l'authentification de l'utilisateur devrait toujours
- être faite dans les fichiers .htaccess est très
- répandue. Il est aussi souvent avancé, ces dernières
- années, que les directives de .htaccess. Ceci est
+ être faite dans les fichiers .htaccess est très
+ répandue. Il est aussi souvent avancé, ces dernières
+ années, que les directives de .htaccess. Ceci est
tout simplement faux. Vous pouvez configurer
l'authentification des utilisateurs au niveau de la configuration du
- serveur principal, et c'est en fait cette méthode qui doit être
- privilégiée. De même, les directives de
- mod_rewrite fonctionneront mieux, à de nombreux égards,
+ serveur principal, et c'est en fait cette méthode qui doit être
+ privilégiée. De même, les directives de
+ mod_rewrite fonctionneront mieux, à de nombreux égards,
dans le contexte du serveur principal.
Les fichiers .htaccess ne devraient être utilisés
- que dans le cas où les fournisseurs de contenu ont besoin de
- modifier la configuration du serveur au niveau d'un répertoire, mais
- ne possèdent pas l'accès root sur le système du serveur. Si
+
Les fichiers .htaccess ne devraient être utilisés
+ que dans le cas où les fournisseurs de contenu ont besoin de
+ modifier la configuration du serveur au niveau d'un répertoire, mais
+ ne possèdent pas l'accès root sur le système du serveur. Si
l'administrateur du serveur ne souhaite pas effectuer des
- modifications de configuration incessantes, il peut être intéressant
- de permettre aux utilisateurs isolés d'effectuer eux-mêmes ces
+ modifications de configuration incessantes, il peut être intéressant
+ de permettre aux utilisateurs isolés d'effectuer eux-mêmes ces
modifications par le biais de fichiers .htaccess. Ceci
- est particulièrement vrai dans le cas où le fournisseur d'accès à
- Internet héberge de nombreux sites d'utilisateurs sur un seul
+ est particulièrement vrai dans le cas où le fournisseur d'accès Ã
+ Internet héberge de nombreux sites d'utilisateurs sur un seul
serveur, et souhaite que ces utilisateurs puissent modifier
- eux-mêmes leurs configurations.
Cependant et d'une manière générale, il vaut mieux éviter
- d'utiliser les fichiers .htaccess. Tout élément de
+
Cependant et d'une manière générale, il vaut mieux éviter
+ d'utiliser les fichiers .htaccess. Tout élément de
configuration que vous pourriez vouloir mettre dans un fichier
- .htaccess, peut aussi être mis, et avec la même
- efficacité, dans une section
Il y a deux raisons principales d'éviter l'utilisation des +
Il y a deux raisons principales d'éviter l'utilisation des
fichiers .htaccess.
La première est liée aux performances. Lorsque la directive
- .htaccess,
- httpd va rechercher leur présence dans chaque répertoire. Ainsi,
- permettre l'utilisation des fichiers .htaccess est déjà
- en soi une cause de dégradation des performances, que vous utilisiez
+
La première est liée aux performances. Lorsque la directive
+ .htaccess,
+ httpd va rechercher leur présence dans chaque répertoire. Ainsi,
+ permettre l'utilisation des fichiers .htaccess est déjÃ
+ en soi une cause de dégradation des performances, que vous utilisiez
effectivement ces fichiers ou non ! De plus, le fichier
- .htaccess est chargé en mémoire chaque fois qu'un
- document fait l'objet d'une requête.
.htaccess est chargé en mémoire chaque fois qu'un
+ document fait l'objet d'une requête.
Notez aussi que httpd doit rechercher les fichiers
- .htaccess dans tous les répertoires de niveau
- supérieur, afin de rassembler toutes les directives qui s'appliquent
- au répertoire courant (Voir la section comment sont
- appliquées les directives). Ainsi, si un fichier fait l'objet
- d'une requête à partir d'un répertoire
+ .htaccess dans tous les répertoires de niveau
+ supérieur, afin de rassembler toutes les directives qui s'appliquent
+ au répertoire courant (Voir la section comment sont
+ appliquées les directives). Ainsi, si un fichier fait l'objet
+ d'une requête à partir d'un répertoire
/www/htdocs/exemple, httpd doit rechercher les
fichiers suivants :
En conséquence, chaque accès à un fichier de ce répertoire
- nécessite 4 accès au système de fichiers supplémentaires pour
- rechercher des fichiers .htaccess, même si
- aucun de ces fichiers n'est présent. Notez que cet exemple ne peut
- se produire que si les fichiers .htaccess ont été
- autorisés pour le répertoire /, ce qui est rarement le
+
En conséquence, chaque accès à un fichier de ce répertoire
+ nécessite 4 accès au système de fichiers supplémentaires pour
+ rechercher des fichiers .htaccess, même si
+ aucun de ces fichiers n'est présent. Notez que cet exemple ne peut
+ se produire que si les fichiers .htaccess ont été
+ autorisés pour le répertoire /, ce qui est rarement le
cas.
La seconde raison d'éviter l'utilisation des fichiers
- .htaccess est liée à la sécurité. Si vous permettez aux
+
La seconde raison d'éviter l'utilisation des fichiers
+ .htaccess est liée à la sécurité. Si vous permettez aux
utilisateurs de modifier la configuration du serveur, il peut en
- résulter des conséquences sur lesquelles vous n'aurez aucun
- contrôle. Réfléchissez bien avant de donner ce privilège à vos
+ résulter des conséquences sur lesquelles vous n'aurez aucun
+ contrôle. Réfléchissez bien avant de donner ce privilège à vos
utilisateurs. Notez aussi que ne pas donner aux utilisateurs les
- privilèges dont ils ont besoin va entraîner une augmentation des
- demandes de support technique. Assurez-vous d'avoir informé
- clairement vos utilisateurs du niveau de privilèges que vous leur
- avez attribué. Indiquer exactement comment vous avez défini la
+ privilèges dont ils ont besoin va entraîner une augmentation des
+ demandes de support technique. Assurez-vous d'avoir informé
+ clairement vos utilisateurs du niveau de privilèges que vous leur
+ avez attribué. Indiquer exactement comment vous avez défini la
directive
Notez que mettre un fichier .htaccess contenant une
- directive dans un répertoire /www/htdocs/exemple
- revient exactement au même que mettre la même directive dans une
+ directive dans un répertoire /www/htdocs/exemple
+ revient exactement au même que mettre la même directive dans une
section Directory <Directory "/www/htdocs/exemple">
du fichier de configuration de votre serveur principal :
Cependant, la perte de performances sera moindre si vous
- définissez cette directive dans la configuration de
- votre serveur principal, car cette dernière ne sera chargée qu'une
- seule fois au moment du démarrage du serveur, alors qu'elle le sera
- à chaque accès dans le cas d'un fichier .htaccess.
.htaccess.
- L'utilisation des fichiers .htaccess peut être
- entièrement désactivée en définissant la directive none :
L'utilisation des fichiers .htaccess peut être
+ entièrement désactivée en définissant la directive none :
Les directives de configuration situées dans un fichier
- .htaccess s'appliquent au répertoire dans lequel ce
- fichier .htaccess se trouve, ainsi qu'à tous ses
- sous-répertoires. Cependant, il est important de garder à l'esprit
+
Les directives de configuration situées dans un fichier
+ .htaccess s'appliquent au répertoire dans lequel ce
+ fichier .htaccess se trouve, ainsi qu'Ã tous ses
+ sous-répertoires. Cependant, il est important de garder à l'esprit
qu'il peut y avoir des fichiers .htaccess dans les
- répertoires de niveau supérieur. Les directives sont appliquées
- selon l'ordre dans lequel elles sont rencontrées. Ainsi, les
- directives d'un fichier .htaccess situé dans un
- répertoire particulier peuvent écraser les directives se trouvant
- dans des fichiers .htaccess situés à un niveau
- supérieur dans l'arborescence des répertoires. Et ces dernières
- peuvent elles-mêmes avoir écrasé des directives d'un fichier
- .htaccess situé à un niveau encore plus haut, ou dans
+ répertoires de niveau supérieur. Les directives sont appliquées
+ selon l'ordre dans lequel elles sont rencontrées. Ainsi, les
+ directives d'un fichier .htaccess situé dans un
+ répertoire particulier peuvent écraser les directives se trouvant
+ dans des fichiers .htaccess situés à un niveau
+ supérieur dans l'arborescence des répertoires. Et ces dernières
+ peuvent elles-mêmes avoir écrasé des directives d'un fichier
+ .htaccess situé à un niveau encore plus haut, ou dans
le fichier de configuration du serveur principal.
Exemple :
-Dans le répertoire /www/htdocs/exemple1 se trouve un
+
Dans le répertoire /www/htdocs/exemple1 se trouve un
fichier .htaccess contenant ce qui suit :
Note : "AllowOverride Options" doit être présent
+
Note : "AllowOverride Options" doit être présent
pour permettre l'utilisation de la directive ".htaccess.
Dans le répertoire /www/htdocs/exemple1/exemple2 se
+
Dans le répertoire /www/htdocs/exemple1/exemple2 se
trouve un fichier .htaccess contenant ce qui suit
:
Ainsi, à cause de ce second fichier .htaccess du
- répertoire /www/htdocs/exemple1/exemple2, l'exécution
- des CGI est interdite, car la dernière définition d'options
- Options Includes écrase toute autre définition
- d'options d'un fichier .htaccess situé dans un
- répertoire de niveau supérieur.
Ainsi, Ã cause de ce second fichier .htaccess du
+ répertoire /www/htdocs/exemple1/exemple2, l'exécution
+ des CGI est interdite, car la dernière définition d'options
+ Options Includes écrase toute autre définition
+ d'options d'un fichier .htaccess situé dans un
+ répertoire de niveau supérieur.
Comme indiqué dans la documentation sur les Comme indiqué dans la documentation sur les Sections de configuration, les fichiers
- .htaccess peuvent écraser les directives des sections
+ .htaccess peuvent écraser les directives des sections
.htaccess, vous pouvez utiliser :
/www/htdocs.Si vous accédez directement à ce point du document pour apprendre
- à effectuer une authentification, il est important de noter ceci. Il
- existe une fausse idée selon laquelle il serait nécessaire
- d'utiliser les fichiers .htaccess pour implémenter
+
Si vous accédez directement à ce point du document pour apprendre
+ Ã effectuer une authentification, il est important de noter ceci. Il
+ existe une fausse idée selon laquelle il serait nécessaire
+ d'utiliser les fichiers .htaccess pour implémenter
l'authentification par mot de passe. Ceci est tout simplement faux.
- Pour y parvenir, il est préférable de mettre les directives
+ Pour y parvenir, il est préférable de mettre les directives
d'authentification dans une section .htaccess ne
- devraient être utilisés que dans le cas où vous n'avez pas accès au
+ devraient être utilisés que dans le cas où vous n'avez pas accès au
fichier de configuration du serveur principal. Voir ci-dessus pour savoir dans quels cas vous devez ou
ne devez pas utiliser les fichiers .htaccess.
Ceci étant dit, si vous pensez que vous devez quand-même utiliser +
Ceci étant dit, si vous pensez que vous devez quand-même utiliser
un fichier .htaccess, vous pouvez utiliser la
configuration suivante :
Notez que AllowOverride AuthConfig doit être présent
+
Notez que AllowOverride AuthConfig doit être présent
pour que ces directives produisent leur effet.
Vous pouvez vous référer au tutoriel sur - l'authentification pour une description plus détaillée de +
Vous pouvez vous référer au tutoriel sur + l'authentification pour une description plus détaillée de l'authentification et de l'autorisation.
Les fichiers .htaccess sont aussi couramment
- utilisés pour activer les SSI pour un répertoire particulier. Pour y
+ utilisés pour activer les SSI pour un répertoire particulier. Pour y
parvenir, on utilise les directives de configuration suivantes,
- placées dans un fichier .htaccess enregistré dans le
- répertoire considéré :
.htaccess enregistré dans le
+ répertoire considéré :
Notez que AllowOverride Options et AllowOverride
- FileInfo doivent être tous les deux présents pour que ces
+ FileInfo doivent être tous les deux présents pour que ces
directives puissent produire leur effet.
Vous pouvez vous référer au tutoriel SSI - pour une description plus détaillée des SSI.
+Vous pouvez vous référer au tutoriel SSI + pour une description plus détaillée des SSI.
Sivous utilisez des directives .htaccess, gardez à l'esprit que les choses sont légèrement
-différentes dans un contexte de répertoire. En particulier, les règles
-sont relatives au répertoire courant, et non à l'URI original. Considérez
+.htaccess, gardez à l'esprit que les choses sont légèrement
+différentes dans un contexte de répertoire. En particulier, les règles
+sont relatives au répertoire courant, et non à l'URI original. Considérez
les exemples suivants :
On voit que si le fichier .htaccess se situe à la racine
-de vos documents, le slash de tête est supprimé de la valeur de
-remplacement spécifiée pour la règle .htaccess se situe à la racine
+de vos documents, le slash de tête est supprimé de la valeur de
+remplacement spécifiée pour la règle .htaccess se situe dans le répertoire images,
-la chaîne /images/ disparaît de cette même valeur de
-remplacement. Il doit donc en être de même dans votre expression
+.htaccess se situe dans le répertoire images,
+la chaîne /images/ disparaît de cette même valeur de
+remplacement. Il doit donc en être de même dans votre expression
rationnelle.
Veuillez vous référer à cette documentation -pour une étude détaillée de l'utilisation du module +
Veuillez vous référer à cette documentation
+pour une étude détaillée de l'utilisation du module
mod_rewrite.
En fin de compte, vous avez décidé d'utiliser un fichier
- .htaccess pour permettre l'exécution des programmes CGI
- dans un répertoire particulier. Pour y parvenir, vous pouvez
+
En fin de compte, vous avez décidé d'utiliser un fichier
+ .htaccess pour permettre l'exécution des programmes CGI
+ dans un répertoire particulier. Pour y parvenir, vous pouvez
utiliser la configuration suivante :
Alternativement, si vous souhaitez que tous les fichiers d'un - répertoire donné soient considérés comme des programmes CGI, vous + répertoire donné soient considérés comme des programmes CGI, vous pouvez utiliser la configuration suivante :
Notez que AllowOverride Options et AllowOverride
- FileInfo doivent être tous les deux présents pour que ces
+ FileInfo doivent être tous les deux présents pour que ces
directives puissent produire leur effet.
Vous pouvez vous référer au tutoriel CGI - pour une description plus détaillée de la configuration et de la +
Vous pouvez vous référer au tutoriel CGI + pour une description plus détaillée de la configuration et de la proprammation CGI.
De nombreuses raisons peuvent être à l'origine du fait que +
De nombreuses raisons peuvent être à l'origine du fait que
les directives que vous avez mises dans un fichier
- .htaccess ne produisent pas l'effet désiré.
.htaccess ne produisent pas l'effet désiré.
- Le plus souvent, le problème vient du fait que la définition de +
Le plus souvent, le problème vient du fait que la définition de
la directive .htaccess. Vérifiez si une directive
- AllowOverride None n'affecte pas le répertoire où se
- trouve votre fichier. Un bon test consiste à mettre des directives
- dont la syntaxe est erronée dans votre ficher .htaccess
- et de recharger la page. Si aucune erreur n'est générée par le
+ .htaccess. Vérifiez si une directive
+ AllowOverride None n'affecte pas le répertoire où se
+ trouve votre fichier. Un bon test consiste à mettre des directives
+ dont la syntaxe est erronée dans votre ficher .htaccess
+ et de recharger la page. Si aucune erreur n'est générée par le
serveur, il est pratiquement certain qu'une directive
- AllowOverride None affecte votre répertoire.
AllowOverride None affecte votre répertoire.
Par contre, si vous obtenez des erreurs de serveur lorsque vous
- tentez d'accéder à des documents, consultez votre journal des
+ tentez d'accéder à des documents, consultez votre journal des
erreurs de httpd. Il vous indiquera probablement que la directive
- utilisée dans votre fichier .htaccess n'est pas
+ utilisée dans votre fichier .htaccess n'est pas
permise.
Cela signifie soit que vous utilisez une directive qui n'est
jamais permise dans les fichiers .htaccess, soit
- que vous n'avez tout simplement pas défini la directive
-
Le journal des erreurs peut aussi vous signaler une erreur de - syntaxe dans l'usage de la directive elle-même.
+ syntaxe dans l'usage de la directive elle-même.Dans ce cas, le message d'erreur sera spécifique à l'erreur +
Dans ce cas, le message d'erreur sera spécifique à l'erreur de syntaxe que vous avez commise.
Sur les systèmes multi-utilisateurs, on peut permettre à chaque -utilisateur d'avoir un site web dans son répertoire home à l'aide de la +
Sur les systèmes multi-utilisateurs, on peut permettre à chaque
+utilisateur d'avoir un site web dans son répertoire home à l'aide de la
directive http://example.com/~nom_utilisateur/
-recevront un contenu situé dans le répertoire home de l'utilisateur
-"nom_utilisateur", et dans le sous-répertoire spécifié par
+recevront un contenu situé dans le répertoire home de l'utilisateur
+"nom_utilisateur", et dans le sous-répertoire spécifié par
la directive
Notez que par défaut, l'accès à ces répertoires n'est -pas permis. Vous pouvez en permettre l'accès à l'aide +
Notez que par défaut, l'accès à ces répertoires n'est
+pas permis. Vous pouvez en permettre l'accès à l'aide
de la directive
dans le fichier de configuration par défaut +
dans le fichier de configuration par défaut
conf/httpd.conf, et en adaptant le
fichier httpd-userdir.conf selon vos besoins, ou en
- incluant les directives appropriées dans une section
+ incluant les directives appropriées dans une section
Directory du fichier de configuration principal.
La directive
Si le chemin spécifié ne commence pas par un slash, il sera - interprété comme chemin relatif au répertoire home de l'utilisateur - considéré. Par exemple, avec cette configuration :
+Si le chemin spécifié ne commence pas par un slash, il sera + interprété comme chemin relatif au répertoire home de l'utilisateur + considéré. Par exemple, avec cette configuration :
/home/rbowen/public_html/fichier.html
- Si le chemin spécifié commence par un slash, le chemin du fichier +
Si le chemin spécifié commence par un slash, le chemin du fichier sera construit en utilisant ce chemin, suivi du nom de l'utilisateur - considéré. Par exemple, avec cette configuration :
+ considéré. Par exemple, avec cette configuration :/var/html/rbowen/fichier.html
- Si le chemin spécifié contient un astérisque (*), ce dernier sera - remplacé par le nom de l'utilisateur dans le chemin du fichier +
Si le chemin spécifié contient un astérisque (*), ce dernier sera + remplacé par le nom de l'utilisateur dans le chemin du fichier correspondant. Par exemple, avec cette configuration :
/var/www/rbowen/docs/fichier.html
- On peut aussi définir plusieurs répertoires ou chemins de - répertoires.
+On peut aussi définir plusieurs répertoires ou chemins de + répertoires.
On peut utiliser la directive
L'exemple ci-dessus va rediriger une requête pour +
L'exemple ci-dessus va rediriger une requête pour
http://example.com/~bob/abc.html vers
http://exemple.org/users/bob/abc.html.
En suivant la syntaxe décrite dans la documentation de UserDir, - vous pouvez définir quels utilisateurs sont autorisés à utiliser - cette fonctionnalité :
+En suivant la syntaxe décrite dans la documentation de UserDir, + vous pouvez définir quels utilisateurs sont autorisés à utiliser + cette fonctionnalité :
La configuration ci-dessus va autoriser l'utilisation de la
- fonctionnalité pour tous les utilisateurs, à l'exception de ceux
- listés à la suite de l'argument disabled. De même, vous
- pouvez interdire l'utilisation de la fonctionnalité à tous les
+ fonctionnalité pour tous les utilisateurs, à l'exception de ceux
+ listés à la suite de l'argument disabled. De même, vous
+ pouvez interdire l'utilisation de la fonctionnalité à tous les
utilisateurs sauf certains d'entre eux en utilisant une
configuration du style :
Vous trouverez d'autres exemples dans la documentation de @@ -158,12 +158,12 @@ avec le système de fichiers
Afin de réserver un répertoire cgi-bin pour chaque utilisateur, +
Afin de réserver un répertoire cgi-bin pour chaque utilisateur,
vous pouvez utiliser une section
Avec la configuration ci-dessus, et en supposant que
- UserDir est défini à public_html, un
- programme CGI exemple.cgi pourra être chargé depuis ce
- répertoire en passant par l'URL :
UserDir est défini à public_html, un
+ programme CGI exemple.cgi pourra être chargé depuis ce
+ répertoire en passant par l'URL :
Si vous voulez que vos utilisateurs puissent modifier la
configuration du serveur pour ce qui concerne leur espace web, ils
devront utiliser des fichiers .htaccess pour effectuer
- ces modifications. Assurez-vous d'avoir défini la directive
-
Les SSI permettent d'ajouter du contenu dynamique à des documents -HTML préexistants.
+Les SSI permettent d'ajouter du contenu dynamique à des documents +HTML préexistants.
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 +
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.
-Par exemple, vous pouvez insérer la directive suivante dans une +
Par exemple, vous pouvez insérer la directive suivante dans une page HTML existante :
Ainsi, lorsque la page sera servie, la directive sera évaluée et - remplacée par sa valeur :
+Ainsi, lorsque la page sera servie, la directive sera évaluée et + remplacée par sa valeur :
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 +
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.
Cette directive indique à Apache que vous désirez permettre la - recherche de directives SSI lors de l'interprétation des fichiers. +
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 Options au répertoire
- spécifique pour lequel vous voulez activer les SSI, afin d'être sûr
- qu'elles y seront bien activées.
Options au répertoire
+ spécifique pour lequel vous voulez activer les SSI, afin d'être sûr
+ qu'elles y seront bien activées.
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
- .shtml, à l'aide des directives suivantes :
.shtml, Ã l'aide des directives suivantes :
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 +
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
- .shtml, condition nécessaire pour que les directives
- SSI qu'elle contient soient traitées.
.shtml, condition nécessaire pour que les directives
+ SSI qu'elle contient soient traitées.
- Une autre méthode consiste à utiliser la directive
La directive chmod.
chmod.
Un bref commentaire sur ce qu'il ne faut pas faire. Certaines
- personnes peuvent vous conseiller de tout simplement indiquer à
+ personnes peuvent vous conseiller de tout simplement indiquer Ã
Apache de rechercher des directives SSI dans tous les fichiers
- .html, ce qui vous évite d'avoir à gérer les noms de
+ .html, ce qui vous évite d'avoir à gérer les noms de
fichiers avec extension .shtml. Ils n'ont probablement
pas entendu parler de la directive
Bien entendu, sous Windows, il n'y a pas de bit d'exécution à +
Bien entendu, sous Windows, il n'y a pas de bit d'exécution à positionner, ce qui limite un peu vos choix.
-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 à +
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 :
+ 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 :XBitHack Full. 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,
+ 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.Le format d'une directive SSI étant similaire à celui d'un - commentaire HTML, si vous n'avez pas activé correctement SSI, le +
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.
+ HTML. Si SSI est correctement configuré, la directive sera remplacée + par ses résultats. -"fonction" peut prendre de nombreuses formes, et nous décrirons - plus précisément la plupart d'entre eux dans la prochaine version de +
"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.
@@ -211,8 +211,8 @@ HTML préexistants.La fonction echo 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 set.
set.
Si vous n'aimez pas le format sous lequel la date s'affiche, vous
pouvez utiliser la fonction config avec un attribut
@@ -227,18 +227,18 @@ HTML préexistants.
Le format peut là aussi être modifié à l'aide de l'attribut +
Le format peut là aussi être modifié à l'aide de l'attribut
timefmt.
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".
+ résultats d'un programme CGI, comme l'universellement adoré + "compteur d'accès".Vous trouverez dans ce qui suit quelques exemples spécifiques de +
Vous trouverez dans ce qui suit quelques exemples spécifiques de ce que vous pouvez faire de vos documents HTML avec SSI.
-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.
+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.
Bien entendu, vous devez remplacer ssi.shtml 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
+ 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 LAST_MODIFIED :
Pour plus de détails sur le format timefmt, tapez
- strftime dans votre moteur de recherche préferé. La
+
Pour plus de détails sur le format timefmt, tapez
+ strftime dans votre moteur de recherche préferé. La
syntaxe est identique.
En plus du format de date, vous pouvez utiliser l'élément +
En plus du format de date, vous pouvez utiliser l'élément
config pour configurer deux autres choses.
En général, lorsque quelque chose se passe mal avec votre +
En général, lorsque quelque chose se passe mal avec votre directive SSI, vous recevez le message :
Il est cependant probable que les utilisateurs finaux ne voient - jamais ce message, car vous aurez résolu tous les problèmes issus de + 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 ?)
Vous pouvez aussi modifier le format sous lequel les tailles de
- fichiers sont affichées à l'aide de l'attribut sizefmt.
- Vous pouvez spécifier bytes pour un affichage en
+ fichiers sont affichées à l'aide de l'attribut sizefmt.
+ Vous pouvez spécifier bytes pour un affichage en
octets, ou abbrev pour un affichage plus concis en Ko
ou Mo, selon le cas.
J'ai pour projet, dans les prochains mois, d'écrire un article à +
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 la fonction
- exec. Vous pouvez vraiment faire exécuter une commande
- par SSI en utilisant le shell (/bin/sh, 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.
exec. Vous pouvez vraiment faire exécuter une commande
+ par SSI en utilisant le shell (/bin/sh, 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.
Vous noterez probablement l'étrange formatage provoqué par cette +
Vous noterez probablement l'étrange formatage provoqué par cette
directive sous Windows, car la sortie de dir contient
- la chaîne de caractères "<dir>", ce qui trompe le
+ la chaîne de caractères "<dir>", ce qui trompe le
navigateur.
Notez que cette fonctionnalité est très dangereuse, car elle va
- permettre d'exécuter tout code associé à l'élément
- exec. 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é exec à l'aide de l'argument
+
Notez que cette fonctionnalité est très dangereuse, car elle va
+ permettre d'exécuter tout code associé à l'élément
+ exec. 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é exec à l'aide de l'argument
IncludesNOEXEC de la directive
Options.
Outre l'affichage de contenu, les SSI d'Apache vous permettent de - définir des variables, et de les utiliser dans des comparaisons et + définir des variables, et de les utiliser dans des comparaisons et des conditions.
-Avec l'élément set, 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
+
Avec l'élément set, 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 :
Pour affecter une valeur à vos variables, en plus de la - définition littérale de l'exemple ci-dessus, vous pouvez utiliser +
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 variables d'environnement, ou les variables
- décrites plus haut (comme LAST_MODIFIED par exemple).
- Pour indiquer qu'il s'agit d'une variable et non d'une chaîne, vous
+ décrites plus haut (comme LAST_MODIFIED 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.
Pour insérer un caractère $ dans la valeur de votre variable, - vous devez l'échapper à l'aide d'un backslash.
+Pour insérer un caractère $ dans la valeur de votre variable, + vous devez l'échapper à l'aide d'un backslash.
Enfin, si vous voulez insérer une variable dans une chaîne, et +
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 + 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).
+ pour illustrer ceci, mais j'espère que vous comprendrez).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
+ 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.
if,
elif, else, endif pour la
construction d'expressions conditionnelles, ce qui vous permet de
- générer plusieurs pages logiques à partir d'une seule vraie
+ générer plusieurs pages logiques à partir d'une seule vraie
page.
La structure de l'expression conditionnelle est :
@@ -451,14 +451,14 @@ HTML préexistants. <!--#endif -->Une condition peut revêtir la forme de toute comparaison +
Une condition 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
+ 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
Par exemple, spour insérer l'heure du jour dans votre page web, +
Par exemple, spour insérer l'heure du jour dans votre page web, vous pouvez ajouter ces lignes dans la page HTML :
Toute autre variable (que vous avez définie, ou une variable - d'environnement normale) peut être utilisée dans les expressions +
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 Expressions - rationnelles dans le serveur HTTP Apache pour plus de détails à - propos du fonctionnement du moteur d'évaluation des expressions + rationnelles dans le serveur HTTP Apache pour plus de détails à + propos du fonctionnement du moteur d'évaluation des expressions rationnelles.
-Associée à la possibilité avec Apache de définir - des variables d'environnement à l'aide de directives +
Associée à la possibilité avec Apache de définir
+ des variables d'environnement à l'aide de directives
SetEnvIf, 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.
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.
+ 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.