Contanto que seu bloco <LimitExcept>
esteja dentro de um contexto válido para as diretivas Allow
/ Deny
, ele funcionará bem.
Se você tentar colocar até mesmo uma regra Deny
nua diretamente no contexto <VirtualHost>
, verá que ela é negada da mesma forma - <VirtualHost>
com Deny
não é permitido, então nenhum dos dois adicionando um <LimitExcept>
entre eles.
Mas o truque é que <LimitExcept>
e alguns outros tipos de bloco como <IfModule>
não modificam o contexto de uma diretiva; você nunca verá "limite" na lista de contextos aceitáveis na documentação de uma diretiva.
Existem apenas quatro contextos que podem determinar se uma diretiva é permitida :
- configuração do servidor
- host virtual Diretório
- (que inclui também as diretivas de tipo
<Location>
e<Files>
) - .htaccess
No caso das diretivas mod_authz_host
( Order
, Allow
e Deny
), elas só são permitidas em contextos de diretório e htaccess, então elas sempre errarão quando não estiverem em um.
No seu caso, não há localização do sistema de arquivos para este vhost de proxy reverso, então você vai querer usar um <Location>
block (que é um contexto válido para Allow
/ Deny
porque é do contexto do diretório tipo):
<Location />
Order allow,deny
Allow from all
<LimitExcept HEAD POST GET>
Deny from all
</LimitExcept>
</Location>
Ah, e livre-se desse <Proxy *>
block, já que ele não está fazendo nada - o <Location>
tem precedência sobre isso de qualquer forma, mas está em conflito com as restrições do <LimitExcept>
... então isso me deixa nervoso .