是否可以重定向帖子数据?

2022-08-30 09:24:43

我有一个网站,其中所有请求都被静默地重定向到(通过),然后使用PHP来显示正确的页面(通过解析)。.htaccessindex.phpREQUEST_URI

我想知道是否有可能将POST数据也提交到假地址?

我目前有这样的表格...

<form action="/send-mail" method="post">

我的规则是....htaccess

# redirect mail posting to index
RewriteRule send-mail index.php?send-mail [NC,L] 

我的检查工作正常。index.phpisset($_GET['send-mail'])

但是,这似乎会丢弃应发送给它的所有POST数据。

有没有办法保留帖子数据?我不想使用GET,因为它不能发送那么多信息,尽管对于简单的查询表单来说,这可能不是问题。

这是我的重定向到.htaccessindex.php

# serve files and dirs if they exist please, otherwise send to index
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php

答案 1

试试这个:

# redirect mail posting to index
RewriteRule send-mail index.php?send-mail [NC,P]

“P”的行为类似于“L”,因为它停止处理规则,但它也告诉模块请求应该完好无损地传递给代理模块(这意味着POST数据被保留)。


答案 2

您应该能够简单地重定向到 ,然后在该脚本中,访问以查看原始请求,并且“send-mail”保持不变。index.php$_SERVER['REQUEST_URI']

顺便说一句,“无法发送那么多信息”不是使用POST的理由。使用POST的原因是请求将修改您网站上的数据,而不是简单地检索数据。

假设您在页面上放置了一个带有GET请求的超链接,例如“,”,然后一些搜索引擎无辜地跟踪该链接,因为它正在索引您的网站。这就是为什么 GET 请求不适合修改数据的请求。/delete_user?id=1234


推荐