我试图阻止根文件夹中的所有 HTTP POST 请求,但允许 HTTPS POST。我正在处理大量占用服务器带宽的 POST 请求,但它们都是 HTTP。当实际客户来到网站时,需要 POST 操作(登录等),但它们都是在 HTTPS 页面上完成的。我可以清除有问题的请求并只允许 HTTPS POST 操作吗?使用以下我可以阻止:
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REMOTE_ADDR} !127.0.0.1
RewriteRule ^ / [F]
然后尝试这样做以允许 HTTPS:
#if https on
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^ / [L]
#else
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REMOTE_ADDR} !127.0.0.1
RewriteRule ^ / [F]
它返回 500 内部服务器错误。请注意,合法的 POST 请求确实源自根目录,因此我不能只在允许 POST 的子文件夹中添加特殊的 .htaccess。