Php 如何在.htaccess中重写url后传递post数据
我在位于/projects/testsite的htaccess文件中使用以下代码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
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');代码>