From 6beeb1b708550be0d4a53b272283e17e5e35fe17 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 17:01:30 +0200 Subject: Adding upstream version 2.4.57. Signed-off-by: Daniel Baumann --- docs/manual/howto/htaccess.html.fr.utf8 | 512 ++++++++++++++++++++++++++++++++ 1 file changed, 512 insertions(+) create mode 100644 docs/manual/howto/htaccess.html.fr.utf8 (limited to 'docs/manual/howto/htaccess.html.fr.utf8') diff --git a/docs/manual/howto/htaccess.html.fr.utf8 b/docs/manual/howto/htaccess.html.fr.utf8 new file mode 100644 index 0000000..2b71c5b --- /dev/null +++ b/docs/manual/howto/htaccess.html.fr.utf8 @@ -0,0 +1,512 @@ + + + + + +Tutoriel du serveur HTTP Apache : fichiers .htaccess - Serveur HTTP Apache Version 2.4 + + + + + + + +
<-
+

Tutoriel du serveur HTTP Apache : fichiers .htaccess

+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + pt-br 

+
+ +

Les fichiers .htaccess fournissent une méthode pour +modifier la configuration du serveur au niveau de chaque répertoire.

+
+ +
top
+
+

Fichiers .htaccess

+ + +
Les fichiers .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 + fichier .htaccess dans une section Directory, car elles produiront le + même effet avec de meilleures performances.
+
top
+
+

Que sont ce fichiers, comment les utiliser ?

+ + +

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.

+ +

Note :

+

Si vous voulez donner un autre nom à votre fichier + .htaccess, vous pouvez le faire en utilisant la + directive AccessFileName. Par + exemple, si vous préférez nommer votre fichier + .config, vous pouvez mettre ceci dans le fichier de + configuration de votre serveur :

+ +
AccessFileName ".config"
+ +
+ +

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 AllowOverride. Cette directive spécifie, + sous forme de catégories, quelles directives seront traitées si + elles se trouvent dans un fichier .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 AllowOverride pour que cette directive + soit traitée.

+ +

Par exemple, si vous regardez la documentation de la directive + AddDefaultCharset, vous verrez + 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.

+ +

Exemple :

+ + + + + + + + + +
Contexte :configuration du serveur, serveur virtuel, directory, .htaccess
Override:FileInfo
+ +

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".

+
top
+
+

Quand doit-on (ne doit-on pas) utiliser + les fichiers .htaccess ?

+ +

En principe, vous ne devriez utiliser les fichiers + .htaccess que lorsque vous n'avez pas accès au fichier de + 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. Il est aussi souvent avancé, ces dernières + années, que les directives de mod_rewrite doivent + être définies dans les fichiers .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, + 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 + 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 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 + 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 + configuration que vous pourriez vouloir mettre dans un fichier + .htaccess, peut aussi être mis, et avec la même + efficacité, dans une section <Directory> du fichier de configuration de + votre serveur principal.

+ +

Il y a deux raisons principales d'éviter l'utilisation des + fichiers .htaccess.

+ +

La première est liée aux performances. Lorsque la directive + AllowOverride est définie de + façon à autoriser l'utilisation des fichiers .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.

+ +

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, httpd doit rechercher les + fichiers suivants :

+ +

+ /.htaccess
+ /www/.htaccess
+ /www/htdocs/.htaccess
+ /www/htdocs/exemple/.htaccess +

+ +

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 + 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 + 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 + directive AllowOverride et + diriger les utilisateurs vers la documentation correspondante vous + évitera bien des confusions ultérieures.

+ +

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 + section Directory <Directory "/www/htdocs/exemple"> + du fichier de configuration de votre serveur principal :

+ +

Fichier .htaccess dans + /www/htdocs/exemple :

+ +

Contenu du fichier .htaccess dans + /www/htdocs/exemple

AddType text/example ".exm"
+
+ +

Section de votre fichier + httpd.conf

<Directory "/www/htdocs/example">
+    AddType text/example .exm
+</Directory>
+
+ +

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.

+ +

L'utilisation des fichiers .htaccess peut être + entièrement désactivée en définissant la directive AllowOverride à none :

+ +
AllowOverride None
+ +
top
+
+

Comment sont appliquées les directives ?

+ +

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 + le fichier de configuration du serveur principal.

+ +

Exemple :

+ +

Dans le répertoire /www/htdocs/exemple1 se trouve un + fichier .htaccess contenant ce qui suit :

+ +
Options +ExecCGI
+ + +

Note : "AllowOverride Options" doit être présent + pour permettre l'utilisation de la directive "Options" dans les fichiers + .htaccess.

+ +

Dans le répertoire /www/htdocs/exemple1/exemple2 se + trouve un fichier .htaccess contenant ce qui suit + :

+ +
Options Includes
+ + +

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.

+ +

Interactions entre les fichiers .htaccess + et les fichiers de configuration du serveur principal

+ +

Comme indiqué dans la documentation sur les Sections de configuration, les fichiers + .htaccess peuvent écraser les directives des sections + <Directory> pour + le répertoire correspondant, mais peuvent eux-mêmes être écrasés + par d'autres types de sections des fichiers de la + configuration principale. Cette possibilité peut s'avérer utile pour + forcer certaines configurations, même en cas de présence de l'option + libérale AllowOverride. Par + exemple, pour interdire l'exécution de scripts en autorisant la + définition de toute autre option dans les fichiers + .htaccess, vous pouvez utiliser :

+ +
<Directory "/www/htdocs">
+    AllowOverride All
+</Directory>
+
+<Location "/">
+    Options +IncludesNoExec -ExecCGI
+</Location>
+ + +
Dans cet exemple, on considère que le chemin défini par la + directive DocumentRoot est + /www/htdocs.
+ + +
top
+
+

Exemple d'authentification

+ +

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 + d'authentification dans une section <Directory> du fichier de configuration de + votre serveur principal, et les fichiers .htaccess ne + 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 + un fichier .htaccess, vous pouvez utiliser la + configuration suivante :

+ +

Contenu du fichier .htaccess :

+ +
AuthType Basic
+AuthName "Password Required"
+AuthUserFile "/www/passwords/password.file"
+AuthGroupFile "/www/passwords/group.file"
+Require group admins
+ + +

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 + l'authentification et de l'autorisation.

+
top
+
+

Exemple d'Inclusion Côté Serveur (Server Side +Includes - SSI)

+ +

Les fichiers .htaccess sont aussi couramment + 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é :

+ +
Options +Includes
+AddType text/html shtml
+AddHandler server-parsed shtml
+ + +

Notez que AllowOverride Options et AllowOverride + 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.

+
top
+
+

Les règles de réécriture dans les fichiers .htaccess

+

Sivous utilisez des directives RewriteRule dans un fichier +.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 :

+ +
# Dans httpd.conf
+RewriteRule "^/images/(.+)\.jpg" "/images/$1.png"
+
+# Dans un fichier .htaccess situé dans le répertoire racine de vos
+# documents
+RewriteRule "^images/(.+)\.jpg" "images/$1.png"
+
+# Dans un fichier .htaccess situé dans le répertoire images/
+RewriteRule "^(.+)\.jpg" "$1.png"
+ + +

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 RewriteRule, et que si le fichier +.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 +mod_rewrite.

+ +
top
+
+

Exemple de CGI

+ +

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 :

+ +
Options +ExecCGI
+AddHandler cgi-script cgi pl
+ + +

Alternativement, si vous souhaitez que tous les fichiers d'un + répertoire donné soient considérés comme des programmes CGI, vous + pouvez utiliser la configuration suivante :

+ +
Options +ExecCGI
+SetHandler cgi-script
+ + +

Notez que AllowOverride Options et AllowOverride + 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 + proprammation CGI.

+ +
top
+
+

Résolution des problèmes

+ +

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é.

+ +

Le plus souvent, le problème vient du fait que la définition de + la directive AllowOverride + ne permet pas l'activation des directives de votre fichier + .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.

+ +

Par contre, si vous obtenez des erreurs de serveur lorsque vous + 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 + permise.

+ +

+ [Fri Sep 17 18:43:16 2010] [alert] [client 192.168.200.51] /var/www/html/.htaccess: DirectoryIndex not allowed here +

+

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 + AllowOverride à un niveau + suffisant pour la directive que vous utilisez. Consultez la + documentation de cette directive pour déterminer quel cas + s'applique.

+ +

Le journal des erreurs peut aussi vous signaler une erreur de + syntaxe dans l'usage de la directive elle-même.

+ +

+ [Sat Aug 09 16:22:34 2008] [alert] [client 192.168.200.51] /var/www/html/.htaccess: RewriteCond: bad flag delimiters +

+ +

Dans ce cas, le message d'erreur sera spécifique à l'erreur + de syntaxe que vous avez commise.

+
+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + pt-br 

+
top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
+
+ \ No newline at end of file -- cgit v1.2.3