protéger un ou plusieurs fichiers par htaccess
Nous avons vu dans précédent article comment protéger un répertoire avec htaccess, c'est l'utilisation la plus courante de cette technique, mais ici nous allons nous intéresser a comment faire la même chose mais pour protéger uniquement un ou quelques fichiers d'un répertoire, c'est à dire, dans le même répertoire, certains fichiers seront protégés mais pas d'autres.
pour protéger un seul fichier voici ce qu'il faut mettre dans le .htaccess :
<files fichier.ext> require valid-user </files> |
pour en protéger plusieurs :
<files fichier1.ext fichier2.ext fichier3.ext> require valid-user </files> |
cette syntaxe est a utiliser en complément de celle expliquée dans l'autre article bien sûr.
bonne protection de fichiers...
Protéger un répertoire par htaccess
Le but de cet article est montrer comment protéger un répertoire par un htaccess.
pour cela il faut d'abord créer un fichier .htaccess à la racine du répertoire, ce fichier doit contenir les lignes suivantes (a adapter selon la configuration/ besoins) :
AuthName "Page protégée" AuthType Basic AuthUserFile "/CHEMIN/VERS/LE/FICHIER/.htpasswd" Require valid-user |
en suite il faut créer un fichier .htpasswd qui lui contiendra les couples login/mot de passe qui auront accès au répertoire protégé.
pour cela exécutez la commande suivante :
htpasswd -c /CHEMIN/VERS/LE/FICHIER/.htpasswd LOGIN |
-c pour créer un nouveau fichier .htpasswd (a ne pas utiliser si vous ajouter un utilisateur à un fichier existant).
il vous sera ensuite demandé d'entrer le mot de passe 2 fois, faites le, et le tour est joué.
pour plus de renseignement sur la commande htpasswd, voici l'écran d'aide de ladite commande :
$ htpasswd
Usage:
htpasswd [-cmdpsD] passwordfile username
htpasswd -b[cmdpsD] passwordfile username password
htpasswd -n[mdps] username
htpasswd -nb[mdps] username password
-c Create a new file.
-n Don't update file; display results on stdout.
-m Force MD5 encryption of the password.
-d Force CRYPT encryption of the password (default).
-p Do not encrypt the password (plaintext).
-s Force SHA encryption of the password.
-b Use the password from the command line rather than prompting for it.
-D Delete the specified user.
On Windows, NetWare and TPF systems the '-m' flag is used by default.
On all other systems, the '-p' flag will probably not work. |
notez aussi que pour que cette protection fonctionne, il est obligatoire de ne pas avoir la directive apache AllowOverride a none, sinon le fichier .htaccess ne sera pas pris en compte, donc n'oubliez pas de la commenter ou l'enlever tout simplement si vous l'avez dans votre vhost