POST请求到特定的php .htaccess

时间:2019-02-22 12:32:52

标签: php .htaccess

是否可以将所有POST请求转发到特定的php文件,想用.htaccess文件解决?这样您就可以继续进行相应的工作了?

2 个答案:

答案 0 :(得分:0)

在您的.htaccess文件中尝试一下:

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

答案 1 :(得分:0)

如果要将所有POST请求重定向到特定文件,请通过REQUEST_METHOD标志捕获请求。假设所有请求都应发送到processPostData.php,那么您的.htaccess应该如下所示:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^POST$ [NC]
RewriteRule !^processPostData\.php$ /processPostData.php [NC,L]

这还将转发所有请求数据。如果您只希望过滤真正的帖子请求(即仅来自您的网站),则可以只允许来自网站的请求,并将用户代理限制为仅浏览器。

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^yoursite\.com [NC]
RewriteCond %{HTTP_USER_AGENT} ^.*(mozilla|chrome|opera|safari|ie).+$ [NC] # you can add more agents here
RewriteCond %{REQUEST_METHOD} ^POST$ [NC]
RewriteRule !^processPostData\.php$ /processPostData.php [NC,L]

注意:这仍然不是要采用的强大安全策略。我建议您看看CSRF attacks,以通过令牌加强更好的安全性。