2

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

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

当输入 URI 时,例如http://www.mysite.com/article/132/rewrite 会进行重定向,但在里面article.php我无法读取$_GET["id"]var_dumpfrom $_GET/$_REQUEST导致空数组

在另一台服务器上,我有 apache 和 mod_php - 一切正常。

我不是 100% 确定 CGI 是造成这种情况的原因 - 但我有充分的理由假设

谢谢!

4

1 回答 1

2

这听起来有点像 mod_negotiation 在你不想要的时候把事情搞砸了。尝试将此添加到您的 htaccess 文件中:

Options -Multiviews

这些Multiviews选项打开了 mod_negotiation 中的一些东西,它试图猜测请求所追求的资源。当它看到 URI/article/something然后它看到有一个文件/article.php时,它会假定您的意思/article.php/something是直接提供并提供它,完全绕过 mod_rewrite。

于 2013-10-31T19:56:25.560 回答