Httpd htaccess
Autres actions
Assurez-vous d'avoir correctement configuré votre serveur Apache httpd avant d'aller plus loin !
Pour quoi faire ?
Les fichiers .htaccess sont des fichiers de configuration d'Apache, permettant de définir des règles dans un répertoire et dans tous ses sous-répertoires.
Les principales raisons d'utilisation des fichiers .htaccess sont :
- gérer l'accès à certains fichiers;
- ajouter un mime-type;
- protéger l'accès à un répertoire ou un fichier par un mot de passe;
- définir des pages d'erreurs personnalisées.
Principe de fonctionnement
Le fichier .htaccess est placé dans le répertoire dans lequel il doit agir. Il agit ainsi sur les permissions du répertoire qui le contient et sur tous ses sous-répertoires.
Vous pouvez placer un autre fichier .htaccess dans un sous-répertoire d'un répertoire déjà contrôlé par un fichier .htaccess. Le fichier .htaccess du répertoire parent reste en « activité » tant que les fonctionnalités n'ont pas été réécrites.
Avant d'aller plus loin, assurez-vous qu'Apache lise les .htaccess en passant la directive AllowOverride de None à All dans le fichier /etc/httpd/conf/httpd.conf
Pour cela éditez le fichier et cherchez la ligne <Directory "/var/www/html" >. Plus loin, il vous suffit de modifier la ligne AllowOverride None en AllowOverride All.
Bloquer l'accès à des ressources
Un fichier .htaccess est composé de deux sections :
- une première qui contient les chemins vers les fichiers contenant les définitions de groupes et d'utilisateurs;
- une deuxième qui précise les conditions d'accès.
# Définition AuthUserFile /path/to/.htpasswd AuthGroupFile /path/to/.htgroup AuthName "Accès protégé" AuthType Basic #Conditions d'accès Require valid-user
- AuthUserFile définit le chemin d'accès absolu vers le fichier de mot de passe;
- AuthGroupFile définit le chemin d'accès absolu vers le fichier de groupe;
- AuthName entraîne l'affichage dans le navigateur Internet de : « Tapez votre nom d'utilisateur et votre mot de passe. Domaine: "Accès protégé" »;
- AuthType Basic précise qu'il faut utiliser AuthUserFile pour l'authentification;
- Require valid-user précise que l'on autorise uniquement les personnes identifiées. Il est possible de préciser le nom des personnes autorisées : Require user {username}
Création du fichier de mot de passe
Pour créer le fichier de mot de passe, il faut utiliser la commande htpasswd
# htpasswd -c /path/to/.htpasswd jcf New password: Re-type new password: Adding password for user jcf
On vérifie que les mots de passe sont bien chiffrés:
# cat .htpasswd jcf:RM1/WS9zqOV8o
La prochaine fois que l'on veut ajouter un compte il ne faut pas utiliser l'option -c (pour create):
# htpasswd /path/to/.htpasswd magali New password: Re-type new password: Adding password for user magali