.htaccess em um diretório faz com que ele desapareça da listagem de seus pais

3

Eu tenho um servidor Apache em execução em uma caixa linux (digamos example.com). Dentro da raiz da web é uma pasta ( http://example.com/docs/ , localmente /home/me/docs ), com um índice gerado automaticamente de seus subdiretórios, ativado por seu .htaccess :

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

Agora, dentro de docs é docs/protected . Este subdiretório tem seu próprio .htaccess :

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

Agora, é aí que fica estranho (para mim):

  • como está, com a linha comentada, protected não é protegido por senha (o que é normal) e é visível na listagem de seus pais (também esperada)
  • se eu descomentar o Require valid-user , protected fica protegido por senha (se eu digitar o URL diretamente), mas ele também não aparece mais na listagem de seus pais.

Alguém pode descobrir o que poderia causar isso?

Editar: agora percebo que, se eu digitar o URL do diretório protegido, digite a senha e volte para a listagem sem fechar o navegador, a listagem está completa. Em resumo, o diretório está oculto até que eu tenha dado credenciais a ele. Mas eu só quero proteger seu conteúdo, não sua existência!

PS: Isso é com o Apache / 2.2.21 sendo executado em uma caixa Synology.

    
por F'x 08.03.2012 / 23:10

1 resposta

4

E a resposta é que o diretório pai deve ter:

IndexOptions ShowForbidden

Perdi duas horas para encontrar isso.

    
por 08.03.2012 / 23:45