我在子文件夹(www.domain.com/API/)中有一个.htaccess
文件,我需要将此子文件夹的所有POST请求重定向到子文件夹中的文件中(www.domain.com/API) /Sub/manager.php)
我必须说所有POST请求都有数据(2-10个参数),所有数据也都是重定向。
我已经阅读了一些帖子和页面,但他们无法解决我的情况。
我有这条规则:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ https://www.example.net/API/Sub/manager.php [QSA,L]
然而,我有类似的东西:
302 Found - >该文件已移动(链接至 ww.domain.com/API/Sub/manager.php)
有人可以告诉我我做错了什么吗?
提前谢谢。
P.S。 这些是我研究的一些页面:
Seems like POST values are lost when .htaccess RewriteRule used. GET values are OK. How to fix?
答案 0 :(得分:3)
您使用的是错误的状态代码。简而言之,302代码不要求浏览器重新传输所有数据(POST请求);你需要使用307代码。
要在Apache下执行此操作,请将最后一条规则更新为以
结尾[QSA,L,R = 307]
如果您仅对POST数据感兴趣,则甚至不需要QSA标记。</ p>
有关血腥的详细信息,您可以查看HTTP状态代码的完整列表及其含义here。 302代码无法按照您希望的方式运行的原因在协议页面上显式调出如下(强调我的)
注意:RFC 1945和RFC 2068指定不允许客户端 更改重定向请求的方法。但是,大多数 现有的用户代理实现将302视为303 响应,无论如何都对位置字段值执行GET 原始请求方法。状态代码303和307具有 已添加到希望明确清楚哪些服务器的服务器 对客户的反应是预期的。