.htaccess 将所有带有数据的 POST 请求重定向到一个文件

Eds*_*LC. 2 php apache .htaccess redirect

.htaccess在子文件夹 (www.domain.com/API/) 中有一个文件,我需要将此子文件夹的所有 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]
Run Code Online (Sandbox Code Playgroud)

但是,我得到了类似的信息:

302 Found --> 文档已移动(链接到 ww.domain.com/API/Sub/manager.php)

有人可以告诉我我做错了什么吗?

先感谢您。

PS这些是我查看的一些页面:

重定向 POST htaccess

使用 .htaccess RewriteRule 时,POST 值似乎丢失了。GET 值没问题。怎么修?

.htaccess 将所有子目录重定向到文件

mad*_*159 5

您使用了错误的状态代码。简而言之,302 代码并不是请求浏览器重新传输所有数据(POST 请求);您需要改用 307 代码。

要在 Apache 下执行此操作,请更新最后一条规则以结尾

[QSA,L,R=307]

如果您对 POST 数据感兴趣,您甚至不需要 QSA 标志。

有关详细信息,您可以在此处查看HTTP 状态代码及其含义的完整列表。302 代码未按您希望的方式运行的原因在协议页面上明确指出,如下所示(强调我的)

注意:RFC 1945 和 RFC 2068 指定不允许客户端更改重定向请求的方法。然而,大多数现有的用户代理实现将 302 视为 303 响应,对 Location 字段值执行 GET 而不考虑原始请求方法。状态代码 303 和 307 已添加用于希望明确明确客户端期望哪种反应的服务器。