和其他许多人一样,我在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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top