Mod重写问题

kas*_*ter 6 apache mod-rewrite

和其他许多人一样,我在apache中做一些非常简单的mod_rewriting时遇到了问题.

我的.htaccess中有以下内容:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^view/([0-9]+)/([0-9]+)$ view.php?advertId=$1&publisherId=$2 [NC,QSA,L]
Run Code Online (Sandbox Code Playgroud)

哪个应该翻译/查看/ 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 
Run Code Online (Sandbox Code Playgroud)

IE浏览器.一个股票全新的debian安装默认debian包+ php-mssql.

Gum*_*mbo 10

MultiViews可能会导致此行为,即在将请求传递给mod_rewrite之前尝试将请求映射到siminar现有文件.尝试禁用它:

Options -MultiViews
Run Code Online (Sandbox Code Playgroud)

  • 是否有可能告诉MultiViews使用mod_rewrite的输出?我真的很想使用mod_negotiation的功能而没有大量基本相同的RewriteCond语句. (2认同)