mod_rewrite不传递查询string

我有一个安装了PHP CGI的apache2服务器,在我的目录之一中运行php脚本,我用下面的.htaccess文件:

 RewriteEngine On RewriteRule ^article\/(\d+)\/?$ article.php?id=$1 [NC,QSA] 

当inputURI如http://www.mysite.com/article/132/重写使redirect,但在里面article.php我不能读取$_GET["id"]var_dump$_GET / $_REQUEST结果在空arrays

在另一台服务器,我已经与Apache mod_php – 一切工作正常。

我不能100%确定CGI是这个原因 – 但我有充分的理由这样做

谢谢!

这听起来很模糊,就像mod_negotiation在你不想要的时候搞砸了一样。 尝试添加到您的htaccess文件:

 Options -Multiviews 

Multiviews选项会打开mod_negotiation中的某些内容,试图猜测请求之后的资源。 当它看到URI /article/something ,然后它看到有一个文件/article.php ,它假定你的意思是/article.php/something并完全服务,完全绕过mod_rewrite。