Você precisará usar um contêiner <Directory>
em vez de um contêiner <Location>
para aplicar a diretiva AllowOverride
. Embora a diretiva AllowOverride
tenha o contexto "diretório" (o que significa que normalmente seria permitido nos contêineres <Location>
e <Directory>
, etc.), há um restrição específica que declara:
The
AllowOverride
directive works only in<Directory>
sections.
Isso parece ser razoável, pois os arquivos .htaccess
se aplicam a diretórios físicos, não a URLs estritamente (embora os URLs geralmente sejam mapeados para diretórios físicos). (O contêiner <Directory>
também é processado muito antes na solicitação. <Location>
contêineres são processados com atraso.)
A propósito, você também precisa definir AllowOverrideList None
no Apache 2.4 para desativar completamente os arquivos .htaccess
. E de acordo com a os documentos para AllowOverride
:
When this directive is set to None and AllowOverrideList is set to None, .htaccess files are completely ignored. In this case, the server will not even attempt to read .htaccess files in the filesystem.
Atualmente não vejo como .htaccess
(arquivos de configuração por diretório) pode ser condicionalmente habilitado para uma área do sistema de arquivos (sob um único host virtual). Eles estão habilitados ou não.
Referência:
UPDATE: A solução / solução para isso é provavelmente ter um VirtualHost completamente separado (talvez o mesmo host , mas diferente port ? ) apenas para WebDAV que aponta para a mesma área do sistema de arquivos, em que .htaccess
estão completamente desativados. No entanto, os arquivos de ponto (principalmente .htaccess
e .htpasswd
) também são protegidos por padrão, portanto, seria necessário substituir isso, se necessário, para permitir acesso de leitura.