我正在尝试阻止我的根文件夹中的所有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请求确实来自root,因此我不能在允许POST的子文件夹中添加特殊的.htaccess。
答案 0 :(得分:1)
您可以阻止所有HTTP POST
个请求:
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_METHOD} POST
# allow localhost
RewriteCond %{REMOTE_ADDR} !127\.0\.0\.1$
RewriteRule ^ - [F]