Diretório do DocumentRoot Apache httpd

1

Eu quero fazer alterações no meu arquivo httpd.conf do Apache sendo executado no Windows, mas quero saber por que preciso usar (ou declarar) a mesma raiz duas vezes.

DocumentRoot "C:/Apache/htdocs"
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
<Directory "C:/Apache/htdocs">
    AllowOverride None
    Order allow,deny
    Allow from all
  Options None
</Directory>

Se o primeiro for de segurança ou acesso a ser aplicado ao DocumentRoot , por que preciso declarar novamente

Neste caso, são diferentes, posso passar as últimas declarações como: < Diretório "C: / Apache / htdocs" >?

O Apache pode executar a omissão do último < Diretório "C: / Apache / htdocs" >?

Não consigo encontrar o sentido.

Obrigado.

    
por Luigi Giuseppe 21.10.2013 / 21:14

1 resposta

0

Eu sou do UNIX / Linux, mas acho que você está interpretando mal a configuração. Vamos dividir sua configuração em 3 seções (bem, já está em 3 seções).

Primeiro, o DocumentRoot é inteiramente próprio, ignore isso para o seu problema / pergunta.

Em segundo lugar, o 'Diretório /' é configurado para Negar de todos . Isto não é para o seu DocumentRoot, isto é para a raiz do seu sistema de arquivos (eu realmente não sei como o Apache interpreta isso no Windows, mas é verdade para Linux e UNIX).

Terceiro, o 'Diretório' C: / Apache / htdocs "está configurado para Permitir de todo do seu DocumentRoot.

Este é o desempenho básico do Apache e o ajuste de segurança, e provavelmente o padrão em quase todas as distribuições do Apache HTTPD lá fora até agora.

O 'AllowOverride None' da primeira listagem de diretórios impede que o Apache verifique todos os diretórios acima da raiz do documento para substituições (arquivos .htaccess).

Nos documentos do Apache: When this directive is set to None, then .htaccess files are completely ignored. In this case, the server will not even attempt to read .htaccess files in the filesystem.

Portanto, se você remover a sub-rotina 'Directory /': o Apache procurará c: /. htaccess e c: /Apache/.htaccess antes de acessar o diretório 'Directory C: / Apache / htdocs'. Ele não se importará mais, já que 'AllowOverride None' está definido para c: / Apache / htdocs. Seu site será carregado, mas você está aumentando desnecessariamente o trabalho que o Apache precisa fazer para atendê-lo.

Agora, se você remover a sub-rotina "Diretório" C: / Apache / htdocs: "Então você está preso com as configurações de 'Diretório /', que inclui 'Negar de todos'". Seu site NÃO será carregado.

A configuração está correta para mim.

    
por 22.10.2013 / 01:37