Apache mod_重写未通过查询字符串

Apache mod_重写未通过查询字符串,apache,.htaccess,mod-rewrite,php,Apache,.htaccess,Mod Rewrite,Php,我有一个apache2服务器安装了PHP CGI来运行PHP脚本 在我的一个目录中,我有.htaccess文件,其中包含以下内容: RewriteEngine On RewriteRule ^article\/(\d+)\/?$ article.php?id=$1 [NC,QSA] 输入URI时,例如http://www.mysite.com/article/132/重写使重定向在文章中。php我无法读取$\u GET[“id”](var\u dumpfrom$\u GET/$\u请求导致空数

我有一个apache2服务器安装了PHP CGI来运行PHP脚本 在我的一个目录中,我有
.htaccess
文件,其中包含以下内容:

RewriteEngine On
RewriteRule ^article\/(\d+)\/?$ article.php?id=$1 [NC,QSA]
输入URI时,例如
http://www.mysite.com/article/132/
重写使重定向在
文章中。php
我无法读取
$\u GET[“id”]
var\u dump
from
$\u GET
/
$\u请求
导致空数组

在另一台服务器中,我使用了带有mod_php的apache,一切正常

我不能百分之百确定CGI是否是原因——但我有一个很好的理由这样假设


谢谢!

这听起来有点像mod_谈判在你不想的时候把事情搞砸了。请尝试将其添加到你的htaccess文件中:

Options -Multiviews

Multiviews
选项打开mod_协商中的某个东西,它试图猜测请求所需的资源。当它看到URI
/article/something
,然后它看到有一个文件
/article.php
,它会假设您的意思是
/article.php/something
,并直接、完整地提供该文件很好地绕过了mod_rewrite。

成功了!谢谢你能解释一下它的功能吗?(我的
中确实有
选项,包括以下语法链接多视图
)@YaronU。请看:它与我在回答中描述的差不多。