我有一个安装了PHP CGI的apache2服务器来运行php脚本在我的一个目录中,我有.htaccess
文件,其中包含以下内容:
RewriteEngine On
RewriteRule ^article'/('d+)'/?$ article.php?id=$1 [NC,QSA]
当输入 URI 时,例如 http://www.mysite.com/article/132/
重写会进行重定向,但在article.php
内部我无法读取$_GET["id"]
(var_dump
从 $_GET
/$_REQUEST
导致空数组
在我拥有的另一台服务器中,该服务器具有mod_php的apache - 一切正常。
我不是 100% 确定 CGI 是原因 - 但我有充分的理由假设如此
谢谢!
这听起来有点像mod_negotiation当你不想的时候把事情搞砸了。尝试将其添加到您的htaccess文件中:
Options -Multiviews
Multiviews
选项打开mod_negotiation中的某些内容,该内容试图猜测请求所追求的资源。当它看到 URI /article/something
然后看到有一个文件/article.php
时,它假设你的意思是/article.php/something
并直接提供它,完全绕过mod_rewrite。