E a resposta é que o diretório pai deve ter:
IndexOptions ShowForbidden
Perdi duas horas para encontrar isso.
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):
protected
não é protegido por senha (o que é normal) e é visível na listagem de seus pais (também esperada) 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.
E a resposta é que o diretório pai deve ter:
IndexOptions ShowForbidden
Perdi duas horas para encontrar isso.
Tags .htaccess apache-2.2