题
和其他许多人一样,我在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,因为它是第一个字母-uppercase View和我简单地说对前面发生的事情一无所知(我只是通过在我的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
不隶属于 StackOverflow