我有一个网站,所有请求都以静默方式重定向(通过.htaccess)index.php,然后PHP用于显示正确的页面(通过解析REQUEST_URI).
.htaccess
index.php
REQUEST_URI
我想知道是否可以将POST数据提交到假地址?
我现在有这样的表格......
我的.htaccess统治是......
# redirect mail posting to index RewriteRule send-mail index.php?send-mail [NC,L]
我的index.php支票isset($_GET['send-mail'])工作正常.
isset($_GET['send-mail'])
但是,这似乎会丢弃应发送给它的所有POST数据.
有没有办法保留帖子数据?我不想使用GET,因为它不能发送尽可能多的信息,尽管它可能不是一个简单的查询表格的问题.
这是我.htaccess重定向到的index.php
# serve files and dirs if they exist please, otherwise send to index RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule . index.php
Tautologisti.. 62
试试这个:
# redirect mail posting to index RewriteRule send-mail index.php?send-mail [NC,P]
"P"的作用类似于"L",因为它停止处理规则,但它也告诉模块该请求应该完整地传递给代理模块(意味着POST数据被保留).
您应该能够简单地重定向到index.php,然后在该脚本中,访问$_SERVER['REQUEST_URI']以查看原始请求,并且"send-mail"保持不变.
$_SERVER['REQUEST_URI']
顺便说一句,"不能发送尽可能多的信息"不是使用POST的原因.使用POST的原因是请求将修改您网站上的数据,而不是简单地检索数据.
假设您在页面上添加了一个带有" /delete_user?id=1234,"等GET请求的超链接,然后一些搜索引擎无意中跟随链接,因为它正在索引您的网站.这就是为什么GET请求不适合修改数据的请求.
/delete_user?id=1234