Mettre en place un .htaccess

  • Créer des sections restreintes pour certains utilisateurs
  • Protéger un site en cours de développement pour éviter des failles
  • Créer des sections accessibles pour une liste d’adresses IP

Il existe évidemment des dizaines et des dizaines de tutos expliquant comment configurer un .htaccess, vous trouverez ici un exemple simple de mise en place sans configuration avancée.

Trêve de prose, passons à la technique et mettons en place ce fichier.


  1. Création du fichier
  2. Configuration du fichier
  3. Configuration Apache2
  4. Création de compte d’accès
  5. Test de la configuration

1. Création du fichier

Il faut tout d’abord créer le fichier nommé “.htaccess” à la racine des éléments que vous souhaitez protéger. Pour cela, sous les systèmes Unix, rien de plus simple :

$ touch .htaccess

En ce qui concerne Windows, le système est un peu plus restrictif et il va falloir faire preuve d’imagination. Pour cela, ouvrez Notepad (via le moyen que vous préférez, personnellement “Windows+R” puis “notepad” puis “Entrée“). Une fois la fenêtre ouverte, faites “Enregistrer sous…” ou “Ctrl+Maj+S” puis enregistrez le fichier comme dans la capture ci-dessous.

Capture 1 : Enregistrement fichier sous Windows

Ça y est, nous avons notre fichier prêt à être configuré.

2. Configuration du fichier

Pour la suite des explications, nous allons protéger le dossier secret_door et nous expliciterons une configuration sous Linux (Debian Buster) comme le montre l’arborescence de fichiers ci-dessous.

Capture 2 : Arborescence des fichiers

Comme vous pouvez le voir sur la capture, il faut modifier les droits sur le fichier et appliquer les droits via la commande suivante :

$ chmod 605 .htaccess

Ensuite, ouvrez le fichier et copier/coller la configuration ci-dessous :

AuthUserFile /etc/apache2/.htpasswd
AuthName "Please Enter Password"
AuthType Basic
Require valid-user

Pour expliquer rapidement les 4 lignes ci-dessus :

  • La première ligne pour expliciter où se situe le fichier contenant les identifiants et les mots de passe (partie 4)
  • La deuxième ligne qui est à modifier à votre guise en fonction du message que vous souhaitez afficher dans le popup
  • La troisième ligne précise le système d’authentification
  • La dernière ligne permet à plusieurs utilisateurs (qui sont référencés dans le fichier .htpasswd) de pouvoir se connecter

3. Configuration Apache2

Avant de créer un compte pour accéder à notre précieux dossier, il nous faut modifier la configuration Apache2 présente à l’emplacement suivant :

/etc/apache2/apache2.conf

Et rajouter les lignes suivantes à la fin du fichier :

<Directory /var/www/html/>
    Options Indexes FollowSymLinks
	AllowOverride All
	Require all granted
</Directory>

Le point à modifier selon votre configuration est l’emplacement présent dans la première ligne, il signifie que pour tous les fichiers dans ce dossier (et ce de manière récursive), si un fichier .htaccess est présent, alors ils seront protégés.

4. Création de compte d’accès

Il ne reste plus qu’un compte pour accéder à notre précieux dossier, pour cela nous vous conseillons d’utiliser le site suivant pour générer la paire utilisateur-condensat, il est possible de la générer autrement mais nous cherchons ici la simplicité ☺

Dans l’exemple ci-dessous, nous souhaitons créer un accès pour l’utilisateur “toto” avec le mot de passe “titi“.

Capture 3 : Création du compte

Il suffit ensuite de copier la partie surlignée sur l’image ci-dessus dans le fichier .htpasswd, qu’il faut créer bien entendu en suivant le même procédé que pour le fichier .htaccess dans la partie 1.

Par ailleurs, il est fortement conseillé de limiter les droits d’écriture sur ce fichier aux seuls comptes d’administration de la machine.

5. Test de la configuration

Tout est bon, il ne reste plus qu’à tester l’accès et si tout est bon vous tomberez sur la page suivante.

Capture 4 : Test de la configuration

Si vous rencontrez des problèmes, il existe un moyen simple : les précieux logs

Tout d’abord, exécutez la commande ci-dessus pour valider que la configuration est correcte.

$ apache2ctl configtest
Syntax OK

La deuxième ligne est renvoyée quand la syntaxe est bonne (Bien vu Sherlock !)

Ensuite pour les logs Apache2, vous pouvez vous rendre dans le dossier ci-dessous et explorer les logs à la recherche d’erreur.

/var/log/apache2

Merci d’avoir suivi ce premier petit tuto, en espérant que cela vous ait été utile. N’hésitez pas à me communiquer vos ressentis, tips…etc via le formulaire ci-dessous.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *