和其他许多人一样,我在apache中做一些非常简单的mod_rewriting时遇到了问题.
我的.htaccess中有以下内容:
Options +FollowSymLinks RewriteEngine on RewriteBase / RewriteRule ^view/([0-9]+)/([0-9]+)$ view.php?advertId=$1&publisherId=$2 [NC,QSA,L]
哪个应该翻译/查看/ 4093/203?qs = val - > /view.php?advertId=4093&publisherId=203?qs=val
现在,它在使用/ View ...调用它时有效,但是在执行小写/视图时,它会重定向到正确的文件,但是我的PHP脚本中没有设置advertId和publisherId,因为它是第一个字母大写的视图而且我简单地对前面发生的事情一无所知(我一直在测试并观察这种行为只需在我的view.php上进行).
任何人都知道为什么会这样吗?
我可能想补充一下,我的服务器信息如下:
Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny2 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_perl/2.0.4 Perl/v5.10.0
IE浏览器.一个股票全新的debian安装默认debian包+ php-mssql.
MultiViews
可能会导致此行为,即在将请求传递给mod_rewrite之前尝试将请求映射到siminar现有文件.尝试禁用它:
Options -MultiViews