Opções do Apache -Índices para subdiretórios

Opções do Apache -Índices para subdiretórios

PorComo posso evitar que as pessoas vejam uma lista de arquivos no diretório pai se eu não carreguei o index.html?Posso ver como desativar a listagem de arquivos se não houver arquivo index.*.

Como posso permitir a listagem de arquivos para o diretório raiz, mas não para qualquer outro subdiretório?

Desde já, obrigado.

Responder1

Como você marcou a pergunta .htaccess, você poderia fazer algo como o seguinte no .htaccessarquivo raiz do Apache 2.4:

# Default - Directory listings disabled (mod_autoindex)
Options -Indexes

# Override - Allow directory listings for the root only
<If "%{REQUEST_URI} == '/'">
    Options +Indexes
</If>

Responder2

Normalmente, os subdiretórios herdarão as mesmas configurações que você aplica ao diretório pai no Apache. E, até onde eu sei, você não pode mudar isso e não existe uma maneira de limitar o escopo das diretivas a apenas um único nível de diretório.

Isso significa que você precisa:

  • defina a opção/diretiva desejada no diretório pai
  • alterar/substituir/negar essa opção/diretiva para todos os subdiretórios (atuais e novos).

Em vez de fazer isso para cada subdiretório individualmente, é mais fácil fazer isso com oDirectoryMatchdiretiva.

Em seu conjunto principal httpd.conf (ou um include)

<Directory "/path/to/example.com/">
  # enable directory listings
  Options +Indexes
</Directory>


<DirectoryMatch "/path/to/example.com/.*/">
  # Disable directory listings for all sub directories of /path/to/example.com/
  Options -Indexes
</Directory>

(não testado)

informação relacionada