Php 如何在.htaccess中重写url后传递post数据

Php 如何在.htaccess中重写url后传递post数据,php,apache,.htaccess,Php,Apache,.htaccess,我在位于/projects/testsite的htaccess文件中使用以下代码 AddType x-mapp-php5 .php RewriteEngine On RewriteBase / Options -MultiViews RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . projects/testsite/index.php [L,QSA] #ErrorDo

我在位于/projects/testsite的htaccess文件中使用以下代码

AddType x-mapp-php5 .php
RewriteEngine On
RewriteBase /
Options -MultiViews 

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . projects/testsite/index.php [L,QSA]

#ErrorDocument 404 /404.php
当我在 然后我按Save,它会将请求重定向到

所有post数据都将丢失

如果我尝试调试,我得到的是

POST:数组打印\u r:数组() 获取:数组打印\u r:Array()

我应该如何处理我的.htaccess文件以保持将所有请求重定向到index.php,但保留所有post数据

提前谢谢你

另外,如果我使用web.config重写规则在Windows服务器中设置了我的网站,那么它可以正常工作

更新#1

从Firefox Live HTTP头文件中,我看到了一个重大问题:301永久移动头文件仅在Apache中捕获(这在IIS中不会发生)

HTTP/1.1 301永久移动 日期:2014年4月6日星期日13:48:06 GMT 服务器:Apache 地点: 改变:接受编码 内容编码:gzip 内容长度:270 保持活动状态:超时=3,最大值=100 连接:保持活力

内容类型:text/html;字符集=iso-8859-1 更新#2

似乎与这个问题有某种联系:

询问者发现有人对.htaccess文件顶部的每个请求强制执行301重定向规则


这是不是主机提供商的错?

这让人很困惑,希望我能让某人免于同样的头痛:

问题出现在Parallels面板>网站和域>mydomain.gr>主机设置中

找到选择字段:

首选域,它被设置为domain.tld,但我的所有请求都指向www.domain.tld,因此301重定向(您将丢失所有post数据)是由parallels强制的,而不是由我的应用程序文件强制的

请注意,平行线中的标签警告:

无论访问者在浏览器中指定的域URL(带或不带www前缀),都会打开带有首选域URL的页面。HTTP 301代码用于这种重定向。“None”值表示不执行重定向

因此,我的解决方案是将首选域更改为无。

file\u get\u contents('php://input');