Apache mod_重写未通过查询字符串
我有一个apache2服务器安装了PHP CGI来运行PHP脚本 在我的一个目录中,我有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请求导致空数
.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。请看:它与我在回答中描述的差不多。