From: Lucien Gentis Les fichiers .htaccess
fournissent une méthode pour
@@ -62,7 +62,7 @@ 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
principal. L'utilisation des fichiers .htaccess
- ralentit le fonctionnement de votre serveur Apache. Il est toujours
+ 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
fichier .htaccess
dans une section
En principe, vous ne devriez utiliser les fichiers
.htaccess
que si vous n'avez pas accès au fichier de
- configuration du serveur principal. Par exemple, la fausse idée
+ configuration du serveur principal. Par exemple, la fausse idée
selon laquelle l'authentification de l'utilisateur devrait toujours
- être faite dans les fichiers .htaccess
est très
- répandue. Ceci est tout simplement faux. Vous pouvez configurer
+ être faite dans les fichiers .htaccess
, et ces
+ dernières années celle selon laquelle les directives de
+ .htaccess
sont très
+ répandues. 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.
mod_rewrite
fonctionnent de manière plus satisfaisante
+ à de nombreux égards dans la configuration du serveur principal.
Les fichiers .htaccess
ne devraient être utilisés
que dans le cas où les fournisseurs de contenu ont besoin de
@@ -177,20 +182,20 @@ modifier la configuration du serveur au niveau de chaque répertoire.
La première est liée aux performances. Lorsque la directive
.htaccess
,
- Apache va rechercher leur présence dans chaque répertoire. Ainsi,
+ 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.
Notez aussi qu'Apache doit rechercher les fichiers +
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
- /www/htdocs/exemple
, Apache doit rechercher les
+ /www/htdocs/exemple
, httpd doit rechercher les
fichiers suivants :
/
, ce qui est rarement le
cas.
+ Pour ce qui est des directives .htaccess
, les expressions rationnelles doivent être
+ recompilées à chaque requête pour le répertoire concerné, alors que
+ dans le contexte de la configuration du serveur principal, elles ne
+ sont compilées qu'une seule fois et mises en cache. De plus, les
+ règles en elles-mêmes sont plus complexes, et il faut tenir compte
+ des restrictions inhérentes à mod_rewrite
dans le
+ contexte des répertoires. Voir le Guide de réécriture pour
+ plus de détails à ce sujet.
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
@@ -233,7 +250,7 @@ modifier la configuration du serveur au niveau de chaque répertoire.
/www/htdocs/exemple
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 redémarrer le serveur. Si aucune erreur n'est générée par le
+ 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.
Par contre, si vous obtenez des erreurs de serveur lorsque vous
tentez d'accéder à des documents, consultez votre journal des
- erreurs d'Apache. Il vous indiquera probablement que la directive
+ erreurs de httpd. Il vous indiquera probablement que la directive
utilisée dans votre fichier .htaccess
n'est pas
- permise. Il peut aussi vous indiquer une erreur de syntaxe qu'il
- vous appartiendra de corriger.
Une ligne de ce style indique soit que vous avez utilisé une directive
+ jamais autorisée dans les fichiers .htaccess
, soit que
+ vous n'avez pas défini l'option
Il se peut aussi que la définition de votre directive contienne + une erreur de syntaxe.
+ +Dans ce cas, le message d'erreur sera spécifique à l'erreur de + syntaxe que vous aurez introduite.