我有一个安装了PHP CGI的apache2服务器来运行php脚本
在我的一个目录中,我有.htaccess
文件,其中包含以下内容:
RewriteEngine On
RewriteRule ^article\/(\d+)\/?$ article.php?id=$1 [NC,QSA]
输入http://www.mysite.com/article/132/
之类的URI时,重写会进行重定向,但在article.php
内我无法从$_GET["id"]
/ {{var_dump
$_GET
中读取$_REQUEST
1}}导致空数组
在另一台服务器上我有一个带有mod_php的apache - 一切正常。
我不是百分之百确定CGI就是这个原因 - 但我有充分理由这样做
谢谢!
答案 0 :(得分:2)
这听起来有点像mod_negotiation,当你不想要它时,它会搞乱。尝试将此添加到您的htaccess文件中:
Options -Multiviews
Multiviews
选项打开mod_negotiation中的某些内容,该内容尝试猜测请求后的资源。当它看到URI /article/something
然后它看到有一个文件/article.php
时,它会认为您的意思是/article.php/something
并完全提供,完全绕过mod_rewrite。