- Htaccess
-
.htaccess
Les fichiers .htaccess sont des fichiers de configuration des serveurs web Apache. Ils peuvent être placés dans n'importe quel répertoire du site web (la configuration s'applique au répertoire et à tous les répertoires qu'il contient, qui n'ont pas de tel fichier à l'intérieur) et peuvent être modifiés alors que le serveur est en cours d'exécution.
On peut les utiliser pour modifier les droits d'accès, créer des redirections, écrire des messages d'erreur personnalisés ou associer les extensions de fichier à des types MIME.
Sommaire
Sécurité et restrictions
Les fichiers .htaccess permettent, à un utilisateur ayant la possibilité de déposer des fichiers sur le site web, de surcharger la configuration du serveur. L'administrateur d'un serveur Apache restreint donc en général l'utilisation des fichiers .htaccess à quelques directives particulières grâce à la directive AllowOverride.
L'utilisation des fichiers .htaccess a également un coût en matière de performances, car le serveur web doit vérifier la présence d'un tel fichier à chaque requête avant de la traiter.
URL Rewriting
Les fichiers .htaccess permettent également de réécrire les URL afin de les simplifier. Par exemple, une URL du type :
http://www.example.com/viewtopic.php?order=0&start=1256&message=50
peut être transformée en :
http://www.example.com/topic-1256-50.html
On suppose ici que la valeur 'order' est à 0 par défaut. Le .htaccess contiendra :
RewriteEngine on RewriteRule ^topic-([0-9]+)-([0-9]+)\.html$ viewtopic.php?order=0&start=$1&message=$2 [L]
Le module d’URL Rewriting n'est pas activé chez tous les hébergeurs, notamment les gratuits ; il présente également un intérêt en matière de référencement sur les moteurs de recherche.
La sécurisation d'un répertoire ou d'un fichier par mot de passe
L'une des principales utilités du fichier .htaccess est de sécuriser une partie d'un site. Pour cela, on place dans le répertoire à protéger un fichier .htaccess avec le contenu suivant:
AuthUserFile /var/www/.htpasswd AuthGroupFile /var/www/.htgroup AuthName "Visiteur, vous pénétrez dans une section réservée aux membres, veuillez vous identifier" AuthType Basic <Limit GET> require group Membres Admin </Limit> <LimitExcept GET> deny from all </LimitExcept>
Les couples utilisateurs / mots de passe cryptés sont stockés dans le fichier .htpasswd de la façon suivante:
jacques:$apr1$TVFhC/..$rRph2WN9n1DeW6Cs89So2. franck:$apr1$vAVyg...$HXoAN3bh.Ff6hxXKopIFpE1 robert:$apr1$7ALHn/..$aV8IuW3jqdQWaStyX2Izg. laurent:$apr1$2o89Z/..$SVDHl7FK4A0w8le.cq1Z1
La majorité des hébergeurs proposent un outil permettant de calculer le mot de passe crypté. Le programme htpasswd fourni avec le serveur Apache permet également de le faire.
Les groupes d'utilisateurs sont définis dans le fichier .htgroup de la façon suivante:
Membres:robert laurent franck Admin:jacques franck
L'authentification "Basic" est toujours disponible chez tous les hébergeurs. Il existe d'autres types d'authentification beaucoup plus sûres utilisées notamment en matière de sécurité bancaire ou pour la lecture des cartes d'identités électroniques, mais ces authentifications nécessitent des modules spécifiques.
La gestion des pages d'erreurs
Il n'y a rien de plus énervant pour le visiteur que d'arriver sur une page blanche avec les mots "Erreur 404" lorsque l'URL indiquée dans l'explorer est incorrecte. Pour y remédier, il suffit de créer sur le site une page d'erreur personnalisée et plus conviviale (error.php dans l'exemple qui suit) et on placera les commandes suivantes dans le fichier .htaccess
ErrorDocument 401 /error.php ErrorDocument 403 /error.php ErrorDocument 404 /error.php ErrorDocument 414 /error.php
La redirection des erreurs est toujours disponible quel que soit l'hébergeur.
Créer un fichier .htaccess sous Windows
Les systèmes d'exploitation Windows ne permettent pas de renommer un fichier en .htaccess via la GUI. Pour créer un fichier .htaccess, il faut créer un nouveau fichier à l'aide d'un éditeur de texte et sélectionner Enregistrer sous... dans le menu Fichier. Dans la fenêtre de sauvegarde, il faut entrer ".htaccess" (sans oublier les guillemets, autrement le programme ne comprendra pas le nom du fichier et rajoutera l'extension .txt) puis cliquer sur Enregistrer.
Il est également possible d'utiliser un éditeur de texte avancé qui permet l'enregistrement de ces fichiers, de créer un fichier txt.htaccess qui sera ensuite renommé sur le serveur, ou encore de créer un fichier texte appelé htaccess.txt par exemple, puis de le renommer en tapant en ligne de commande sous windows : rename htaccess.txt .htaccess.
Pour les utilisateurs de solutions WAMP, et avec l'ajout d'un serveur FTP comme FileZilla par exemple, il est également possible de se servir d'un client FTP. Il suffit d'enregistrer le fichier sous format .txt puis de se connecter via FTP pour remplacer htaccess.txt par .htaccess.
Une autre façon de créer un .htaccess avec la ligne de commande : echo. >.htaccess
Liens externes
- (en) Documentation officielle Apache
- (en) Documentation officielle Apache de la réécriture des URL (mod_rewrite)
- (en) Documentation officielle Apache de l'authentification par .htaccess
- (fr) Un générateur de fichier htaccess en ligne
- Portail de l’informatique
Catégories : Fichier de configuration | Serveur web
Wikimedia Foundation. 2010.