3 votes

.htaccess dans un répertoire le fait disparaître de la liste de ses parents.

J'ai un serveur Apache fonctionnant sur une boîte linux (disons exemple.com). À l'intérieur de la racine web se trouve un dossier ( http://example.com/docs/ , localement /home/me/docs ), avec un index automatiquement généré de ses sous-répertoires, activé par sa fonction .htaccess :

Options +Indexes
IndexOptions FancyIndexing NameWidth=* FoldersFirst IgnoreCase SuppressDescription Charset=UTF-8 SuppressHTMLPreamble

Maintenant, à l'intérieur docs es docs/protected . Ce sous-répertoire a son propre .htaccess :

AuthType "Basic"
AuthBasicProvider file
AuthUserFile /path/to/.htpasswd
#Require valid-user

Maintenant, c'est là que ça devient bizarre (pour moi) :

  • tel quel, avec la ligne commentée, protected n'est pas protégé par un mot de passe (ce qui est normal) et est visible sur le listing de son parent (également attendu)
  • si je décommente le Require valid-user , protected devient protégé par un mot de passe (si je tape directement l'URL), mais il n'apparaît plus non plus sur la liste de son parent.

Quelqu'un peut trouver la cause de ce phénomène ?


Editar: Je remarque maintenant que si je tape l'URL du répertoire protégé, puis que j'entre le mot de passe, puis que je retourne à la liste sans fermer le navigateur, la liste est complète. En résumé, le répertoire est caché jusqu'à ce que je lui donne des informations d'identification. Mais je ne veux protéger que son contenu, pas son existence !


PS : Ceci est avec Apache/2.2.21 fonctionnant sur une boîte Synology.

3voto

F'x Points 171

Et la réponse est que le répertoire parent doit avoir :

IndexOptions ShowForbidden

J'ai perdu deux heures à trouver ça.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X