在.htaccess中使用RewriteRule进行POST请求

Jas*_*ary 0 .htaccess mod-rewrite

我试图锁定页面只接受POST请求.作为RESTful API的一部分.我有以下,但似乎没有用.任何帮助,将不胜感激.

RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^api/(call1|call2|call3)/?/ http://www.example.com/api/rest_services.php?_call=$1 [L]
Run Code Online (Sandbox Code Playgroud)

Gum*_*mbo 8

您需要将条件反转为仅匹配非POST的请求:

RewriteCond %{REQUEST_METHOD} !=POST
RewriteRule ^api/(call1|call2|call3)/?/ - [L,R=405]
Run Code Online (Sandbox Code Playgroud)

然后你还应该发送405状态代码告诉客户原因.但是该R=405标志仅在Apache 2之后可用.对于Apache 1,您可以将这些请求发送到响应该状态代码的PHP脚本.