Desabilitado Apache Directory Indexing não aplicado recursivamente, a minha configuração ou entendimento está errada?

3

Estou executando o Apache (2) no Debian. Desejo desativar a indexação automática no diretório / var / www e em quaisquer subdiretórios dele.

No /etc/apache2/conf.d eu coloquei um arquivo com o seguinte conteúdo:

<Directory /var/www>
Options -Indexes
</Directory>

Fiquei com a impressão de que essa diretiva seria aplicada recursivamente em qualquer subdiretório do / var / www, mas o acesso, digamos, a / var / www / someotherdir (sem um index.html) me fornece uma listagem do conteúdo do diretório mesmo depois de reiniciar o apache (apache2ctl restart).

Eu entendi mal a recursividade aqui e preciso usar um arquivo .htaccess?

Atenciosamente! :)

Editar Para a internet:

Eu passei pelo arquivo de configuração "principal" ou "root", /etc/apache2/apache2.conf, e encontrei as seguintes diretivas de inclusão, na seguinte ordem:

include mods-enabled/*.load
include mods-enabled/*.conf
include httpd.conf
include ports.conf
include conf.d/
include sites-enabled/

Considerando que a maioria dos arquivos conf não mantinha nenhum conteúdo que parecesse relevante para as opções de listagem / var / www, o diretório habilitado para sites mantinha um arquivo chamado 000-default que por sua vez continha uma postagem de host virtual, especificando algumas opções para o diretório / var / www. Assim:

<VirtualHost *:80>
<Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

Com base na ordem de mesclagem da diretiva encontrada no link , parece que a especificação da diretiva em conf.d / myfile para / var / www seria substituído pelas diretivas ativadas por sites / 000-default com base em apontar para o mesmo diretório e as diretivas de host virtual sendo processadas por último.

A remoção da opção Indexes do arquivo / 000-default ativado por sites desativou a listagem de diretórios na subárvore / var / www . Então, nesse sentido, tudo parece lógico.

Um ligeiro ponto de confusão ainda existe, tho. Se eu incluir uma diretiva para um diretório específico em meu arquivo conf.d / myfile, digamos / var / www / exampledir, o exampledir terá sua listagem de diretórios desativada, independentemente do conteúdo das diretivas do host virtual. Assim, parece que uma diretiva processada posteriormente não substituirá uma configuração mais específica, mesmo que tenha sido definida anteriormente. Vou tentar dar um exemplo:

Em uma espécie de "sintaxe do arquivo de configuração do pseduo", digamos que eu tenha as seguintes configurações sendo incluídas na seguinte ordem:

index off on /var/www (in my conf.d file)
index off on /var/www/exampledir (in my conf.d file)
index on in /var/www (in 000-default file)

Em seguida, parece que o / var / www terá "index on" em todos os subdiretórios, exceto em / var / www / exampledir, onde a diretiva foi aplicada recursivamente. Portanto, parece que a configuração recursiva no arquivo 000-default não afetará o "índice ligado" em um diretório anterior, mais especificamente chamado.

OU pensando nisso, isso pode significar que as diretivas do arquivo de configuração são processadas, conforme mencionado no link Documentos do Apache, do mais curto ao mais longo, mas as diretivas do host virtual serão processadas por último por diretório especificado e NOT depois de todas as outras diretivas não-virtuais-hospedeiras, independentemente do tamanho (o que eu supus até agora).

Ah, sim, isso talvez explique as coisas. Bem, se alguém ler até aqui, grats para você e boa sorte para nós dois! :)

    
por stackdaemon 28.03.2011 / 10:16

2 respostas

2

Suas configurações estão corretas e devem funcionar como você esperava. Talvez você esteja substituindo Options -Indexes em algum lugar mais profundo em sua árvore de diretório ou em outro vHost por exemplo.

    
por 28.03.2011 / 10:23
0

Deve haver um comando que governe tudo!

Dependendo do sistema operacional, o httpd.conf ou outro arquivo de configuração deve ter apenas "Opções Todos os FollowSymLinks MultiViews" em vez de "Opções Todos os Índices FollowSymLinks MultiViews".

Acho que talvez você esteja procurando a terminologia errada (na melhor das hipóteses, é complicado). Refere-se a "Listagem de diretórios" em oposição a "Indexação".

    
por 28.03.2011 / 10:25