J'ai des fichiers accessibles au public sur mon serveur web. Je voudrais activer l'indexation automatique (options + index) mais j'aimerais demander un mot de passe pour pouvoir afficher ces listes. Je n'ai aucun problème pour configurer l'Auth, mais il y a des complications avec les fichiers publics et les fichiers DirectoryIndex. Si quelqu'un demande un répertoire et qu'il existe un fichier DirectoryIndex, il ne devrait pas avoir à entrer de mot de passe. Seul l'index automatique devrait exiger un mot de passe pour des raisons de sécurité.Mot de passe protégeant AutoIndex mais pas les fichiers statiques avec .htaccess
Voici ce que je suis venu avec:
Options +Indexes
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}index.php -f
RewriteRule ^.*$ %{REQUEST_URI}index.php [R,NE,L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}index.html -f
RewriteRule ^.*$ %{REQUEST_URI}index.html [R,NE,L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}index.htm -f
RewriteRule ^.*$ %{REQUEST_URI}index.htm [R,NE,L]
<FilesMatch "^$">
AuthName "My Auth Name"
AuthType Basic
AuthUserFile /path/to/my/.htpasswd
Require valid-user
</FilesMatch>
Le bit FilesMatch fonctionne très bien. Toute demande de répertoire est invitée à se connecter mais les fichiers normaux passent. C'est le plus facile, la partie la plus difficile est de rendre les DirectoryIndexes sans se connecter. La réécriture en haut était ma tentative ratée de rediriger la requête avant qu'elle ne demande l'autorisation, mais pas de dés, elle demande l'authentification en premier, peu importe quelle.
J'ai fait environ 6 heures de recherche à ce sujet et à ce stade, je suis sur le point d'abandonner. Toute aide serait appréciée.
Édition: voici un exemple de structure de répertoire.
/images/blah.jpg <- does not require a password
/images/ <- requires a password to view listing
/index.html <- does not require a password
/ <- does not require a password because a DirectoryIndex file exists (index.html)
Cela ne fonctionnera pas car j'ai besoin de personnes pour pouvoir lier des fichiers sur le serveur sans avoir à taper un mot de passe. –
RE edit: Le système a plusieurs milliers de répertoires, je ne serais pas en mesure de faire un .htaccess personnalisé pour chacun. –
@Jason Keene: Un fichier de configuration .htaccess affecte également ses sous-répertoires. – Gumbo