Desabilitar métodos HTTP no Apache

10

Como posso desabilitar certos métodos HTTP (por exemplo, PUT ou TRACE) e fazer com que o Apache envie um HTTP "405 Method not allowed".

Eu tentei o Limite e LimitExcept diretivas, mas elas parecem enviar "403 Proibido".

Eu tenho vários vhosts - isso deve estar em todos eles, no httpd.conf principal.

    
por Greg 01.11.2010 / 12:32

3 respostas

13

Parece mesmo que definir o código de erro é um pouco mais difícil do que deveria ser.

No entanto, uma solução alternativa pode estar usando o mod_rewrite . Esse estouro da minha cabeça deve-se ao fato de que, pelo menos em 99% dos problemas do Apache com aparência impossível, o mod_rewrite pode fornecer sua dança vudu e resolver seu problema.

Se tudo mais falhar, tente algo como

RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^GET [AND]
RewriteCond %{REQUEST_METHOD} !^POST 
RewriteRule .* /yourerrordocuments/405.html [R=405,L] 

Eu sei que provavelmente não é a melhor solução por aí, mas deve funcionar ...

    
por 01.11.2010 / 13:51
4

Para o método de rastreamento, você pode adicionar isso

TraceEnable off

no seu arquivo de configuração principal

    
por 01.11.2010 / 14:14
2

Para ativar o mecanismo de reescrita, adicione o seguinte:

 RewriteEngine On 

Por padrão, por padrão, as configurações de reconfiguração não são herdadas nos servidores virtuais. Adicione RewriteEngine On a cada host virtual.

RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS)
RewriteRule .* - [F]
    
por 06.06.2017 / 13:20

Tags