使用 .htaccess 在 PHP 中重定向 POST 数据
问题:
POST 数据可以提交到重定向到索引的虚假地址页?
场景:
网站使用 .htaccess 文件将所有请求重定向到 index.php。但是,当使用带有 POST 方法的表单向虚假地址提交数据时,POST 数据会在重定向过程中丢失。
分析:
默认 .htaccess此场景中使用的规则是:
RewriteRule send-mail index.php?send-mail [NC,L]
此规则正确地将请求重定向到index.php,但是 [L] (last) 标志停止进一步处理并丢弃任何 POST 数据。
解决方案:
要在重定向期间保留 POST 数据,请将 [L] 标志更改为 [P] (代理):
RewriteRule send-mail index.php?send-mail [NC,P]
解释:
[P] 标志的作用与 [L] 类似,停止规则处理,但它也指示代理模块完整地处理请求,包括任何 POST 数据。
其他注意:
# serve files and dirs if they exist please, otherwise send to index RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule . index.php
以上是如何使用 .htaccess 在 PHP 中重定向期间保留 POST 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!