Créer un dossier public dans un dossier protégé par Apache

Créer un dossier public dans un dossier protégé par Apache

Dans le cadre d’un projet, j’ai eu besoin de créer une application protégée par Apache tout en laissant l’accès à un dossier particulier.

Le principe

Voilà l’arborescence :

/ : le dossier racine du site Web, protégé par mot de passe, contient le fichier .htaccess
|- cache : protégé par mot de passe grâce au fichier .htcaccess à la racine
|- public : devrait être accessible

En l’état, il est nécessaire de s’authentifier pour avoir accès à tout le site, y compris au contenu du dossier public.

Protection par .htaccess

Voilà le contenu du fichier .htaccess à la racine, permettant de protéger toute l’arborescence :

AuthType Digest
AuthName "Private"
AuthUserFile /path/to/.htpasswd
Require user valid-user

Dès lors, l’accès à tout dossier et fichier requiert un identifiant et un mot de passe valide.

Créer le dossier public dans le dossier protégé

En fait c’est simple. Il suffit de créer un fichier .htaccess dans le dossier public avec ce contenu :

Satisfy Any

Et c’est tout.

Une fois ce fichier en place :

  • tout le site nécessite une identification
  • sauf le dossier public, auquel on peut accéder sans identifiant/mot de passe

Il est aussi possible de donner l’accès à certains types de fichiers, par exemple les images :

<FilesMatch "\.(gif|jpe?g|png)$">
Satisfy Any
Allow from all
</FilesMatch>

Le mot de la fin

Il existe d’autres solutions, comme créer un autre sous-domaine complétement public et d’y écrire le contenu public.
Le fait d’avoir accès à plusieurs sous-domaines en écriture depuis le même site ne me plait pas, d’autant que la configuration est plus complexe.
Alors pourquoi faire compliqué ?

L'illustration de cet article est une image sous licence Domaine public par Gonioul

Cet article vous a été utile ? Partage it !

2 réflexions au sujet de « Créer un dossier public dans un dossier protégé par Apache »

  1. Bonjour, sympa cette astuce ! par contre je me demande une chose, si j’ai bien compris, une fois la mot de passe saisi, il suffit de faire un glisser dans le dossier pour y charger des fichiers ?

    1. Bonjour Pluggd,
      Il faut lire, tout est écrit !
      Non je plaisante, ce n’était pas si clair, j’ai ajouté quelques lignes pour améliorer l’article. Merci 🙂
      Pour répondre à ta question : l’accès au site complet nécessite un mot de passe, sauf le dossier qui contient le .htaccess avec la ligne décrite dans l’article.
      David

Laisser un commentaire

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

Si vous le souhaitez, renseignez le champ 'Nom' de cette façon : 'VotreNom@VotreMotClef' pour obtenir une ancre optimisée pour les moteurs de recherche.