Eu tenho o seguinte layout de diretório:
/var/www/
example.com/
logs/
html/
stuff/
O Apache está configurado para servir normalmente de/var/www/example.com/html
Eu configurei o webdav para funcionar para o url https://example.com/server-admin
e permitir o acesso aos outros diretórios também:
<VirtualHost>
...
Alias /server-admin /var/www/example.com/
<Location /server-admin >
Dav on
AllowOverride None
...
Com AllowOverride None
o desejo de desabilitar os arquivos htaccess para que eles não interrompam a operação do webdav.
Este tipo de trabalho. Mas : se eu carregar um arquivo htaccess quebrado sintaticamente, tudo desmorona com um erro interno do servidor 500. Acho que mesmo assim o arquivo não é usado, o apache ainda o analisa.
Então, tentei AccessFilename .davaccess
mudar para algum outro nome, que meio que funciona, mas não em, <Location>
mas apenas globalmente em <VirtualHost>
.
Então o que fazer? Como desabilitar o htaccess em um <Location>
ou como devo alterar o layout para que isso funcione?
Você precisará usar um
<Directory>
contêiner em vez de um<Location>
contêiner para aplicar aAllowOverride
diretiva. Embora aAllowOverride
diretiva tenha um contexto de "diretório" (o que significa que normalmente seria permitido em contêineres<Location>
and<Directory>
etc.), há uma restrição específica que afirma:Isso parece razoável, pois os
.htaccess
arquivos se aplicam a diretórios físicos, não estritamente a URLs (embora as URLs geralmente sejam mapeadas para diretórios físicos). (O<Directory>
contêiner também é processado muito antes na solicitação.<Location>
Os contêineres são processados com atraso.)Aliás, você também precisa configurar o
AllowOverrideList None
Apache 2.4 para desabilitar completamente os.htaccess
arquivos. E de acordo com os documentos paraAllowOverride
:No momento, não vejo como
.htaccess
(arquivos de configuração por diretório) podem ser habilitados condicionalmente para uma área do sistema de arquivos (em um único host virtual). Eles estão ativados ou não.Referência:
ATUALIZAÇÃO: A solução/solução para isso é provavelmente ter um VirtualHost completamente separado (talvez o mesmo host , mas porta diferente ?) Apenas para WebDAV que aponta para a mesma área do sistema de arquivos, na qual
.htaccess
está completamente desabilitado. No entanto, os arquivos ponto (principalmente.htaccess
e.htpasswd
) também são protegidos por padrão, portanto, você precisará substituir isso, se necessário, para permitir o acesso de leitura.