2013-10-31 144 views
2

我有一个PHP CGI安装了Apache2的服务器来运行PHP脚本 里面我的一个目录中我有.htaccess文件有以下几点:mod_rewrite的不通过查询字符串

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

进入URI时如http://www.mysite.com/article/132/重写品牌重定向,但内部article.php我不能在另一台服务器我已经与mod_php的apache的读$_GET["id"]var_dump$_GET/$_REQUEST导致空数组

- 前夕一切正常。

我不是100%肯定的是,CGI是其中的原因 - 但我有一个很好的理由假定这样

谢谢!

回答

2

这听起来很模糊,就像mod_negotiation在你不想要的时候搞乱了一些东西。尝试添加给你的htaccess文件:

Options -Multiviews 

Multiviews选项打开的mod_negotiation模块一些东西,试图猜测一个要求是什么资源之后。当它看到URI /article/something,然后它看到有一个文件/article.php时,它假定你的意思是/article.php/something,并完全绕过mod_rewrite。

+0

它的工作!谢谢 你能解释一下它是做什么的? (我真的有'选项包括FollowSymLinks MultiViews'在我的'.conf') –

+0

@YaronU。请参阅:http://httpd.apache.org/docs/2.2/mod/mod_negotiation.html#multiviews它几乎做了我在答案中描述的内容。 –