和其他许多人一样,我在 apache 中进行一些非常简单的 mod_rewriting 时遇到了问题。
我的 .htaccess 中有以下内容:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^view/([0-9]+)/([0-9]+)$ view.php?advertId=$1&publisherId=$2 [NC,QSA,L]
哪个应该翻译 /view/4093/203?qs=val -> /view.php?advertId=4093&publisherId=203?qs=val
现在,当使用 /View... 调用它时它可以工作,但是当执行小写 /view 时,它会重定向到正确的文件,但 advertId 和publisherId 没有在我的 PHP 脚本中设置,就像使用首字母大写视图一样我只是对这方面发生的事情一无所知(我只是通过在我的 view.php 上执行 a 来测试和观察该行为)。
有谁知道为什么会发生这种情况?
我可能想补充一下,我的服务器信息如下:
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 之前尝试将请求映射到类似的现有文件。尝试禁用它:
Options -MultiViews
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)