2013-10-04 114 views
1

我試圖阻止在根文件夾中的所有HTTP POST請求,但允許HTTPS POST。我正在處理大量的POST請求,這些請求正在抽取我的服務器帶寬,但它們都是HTTP。當實際客戶訪問網站時,POST操作是必需的(登錄等),但它們都是在HTTPS頁面上完成的。我能否清除違規請求並僅允許HTTPS POST操作?使用我能夠阻止以下:只允許使用HTTPS POST請求使用.htaccess

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。

回答

1

您可以阻止所有HTTP POST請求是這樣的:

RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_METHOD} POST 
# allow localhost 
RewriteCond %{REMOTE_ADDR} !127\.0\.0\.1$ 
RewriteRule^- [F]