Protéger un répertoire grâce à un htaccess

Aujourd'hui j'ai voulu protéger un répertoire grâce a un fichier htaccess.

Il y a des centaines de sites qui indiquent comment faire ça de façon simple "créer votre fichier .htpasswd, coller ceci, créer votre htaccess et coller ceci..."

Je créer très souvent des fichiers htaccess / htpasswd de la manière suivante (en ligne de commande) :

Pour savoir ou je me trouve par rapport a la racine de mon serveur j'utilise "pwd" :

$ pwd
/home/sites/www.point2zero.net/exemples

Ensuite je créer mon fichier .htaccess

$ vi .htaccess

Dedans j'ajoute (grâce à la touche i pour passer en mode insertion) :

AuthName "Point2Zero"
AuthType Basic
AuthUserFile "/home/sites/www.point2zero.net/exemples/.htpasswd"
Require valid-user

Le texte de la première ligne sera le message affiché dans ma fenêtre de login.
Dans le AuthUserFile nous allons spécifier le chemin (grâce a la commande précédente pwd) et nous ajoutons à la fin un /.htpasswd qui sera le fichier avec les identifiant et mot de passe.

Sauvez et quitter votre fichier grâce à ":wq"

Maintenant créons le fichier ".htpasswd" grâce à la commande htpasswd :

$ htpasswd -bcm .htpasswd login p4ssw0rd

Détail de la commande :
l'option "b" : permet d'utiliser un fichier pour sauvegarder les informations
l'option "c" : permet de créer le fichier (a enlever lors du 2eme ajout si on veut ajouter plusieurs utilisateurs dans le même fichier)
l'option "m" : permet d'encrypter le mot de passe en MD5
ensuite on indique le fichier, le login et le mot de passe.

Voilà vous savez maintenant sécuriser un dossier grâce à deux fichier htaccess et htpasswd !

3 commentaires pour “Protéger un répertoire grâce à un htaccess”

  1. Comment Arrow

    Toujours utile, perso j'aurai pas utilisé VI :D . Et sinon il existe vraiment aucun moyen de spécifier directement le pwd directement dans le .htaccess ?

  2. Comment Arrow

    Pas avec la commande htpasswd je n'ai pas trouvé l'option.

    Mais sinon un petit script bash devrait faire l'affaire ;)

  3. Comment Arrow

    Ne pas oublier d'ajouter dans la config du vhost :
    /etc/apache2/sites-enabled/ votre fichier vhost

    l'option AllowOverride doit être à All :)