Estou tentando limitar os cabeçalhos de solicitação de um host virtual apenas para POST
, HEAD
e GET
. O que fiz até agora foi criar um .htaccess
para meu host virtual e digitar o seguinte:
<LimitExcept GET HEAD POST>
Require valid-user
</LimitExcept>
O problema é que <LimitExcept>
mostra um erro que diz not allowed here
, então tentei usar <Limit>
, mas resultou no mesmo erro. Também tentei movê-los para dentro do meu .conf
arquivo host virtual e ainda ocorreu um erro. O que não entendo é que nos documentos oficiais diz que é permitido lá e no meu servidor não é.
Responder1
Se você está tentando permitir apenas os métodos GET, POST e HEAD, isso deve funcionar perfeitamente:
<Directory "/path/to/documentroot">
Require method GET POST HEAD
</Directory>
Você precisará colocar essa configuração no seu VirtualHost.
EDITAR: E para responder sua outra pergunta no comentário (como habilitar a autenticação por senha apenas para solicitações POST), isso pode ser conseguido com as seguintes diretivas (que você pode colocar em /path/to/your/directory/.htaccess):
<RequireAny>
AuthUserFile /path/to/your/.htpasswd
AuthName "Login"
AuthType Basic
Require method GET HEAD
Require valid-user
</RequireAny>
Isso permitirá os métodos GET e HEAD, mas as solicitações POST acionam a autenticação.
Responder2
2.4 possui um módulo específico para isso, chamado mod_allowmethods, e o uso de Limit/LimitExcept é desencorajado em 2.4. Certifique-se de carregar o módulo e no host virtual apropriado adicione isto:
# documentroot dir in virtualhost
<Directory /path/to/dir>
AllowMethods GET HEAD POST
Require valid-user
</Directory>
Você também pode torná-lo global definindo-o anteriormente na configuração do servidor para tudo como descrevo abaixo.
***observe que isso está / no seu sistema de arquivos, portanto você deve negar o acesso aqui e permitir diretórios específicos como documentroot ou alias posteriormente, mas permitir que os métodos se propaguem mais abaixo, a menos que você os substitua mais tarde.
<Directory />
Require all denied
AllowMethods GET HEAD POST
</Directory>