apache - Mod重写问题

标签 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]

哪个应该翻译/view/4093/203?qs=val ->/view.php?advertId=4093&publisherId=203?qs=val

现在,它在使用/View... 调用它时有效,但是在执行小写/view 时,它重定向到正确的文件,但 advertId 和 publisherId 未在我的 PHP 脚本中设置,因为它是第一个字母大写的 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 软件包 + php-mssql 的股票全新 d​​ebian 安装。

最佳答案

MultiViews 可能会导致这种行为,即在将请求传递给 mod_rewrite 之前尝试将请求映射到类似的现有文件。尝试禁用它:

Options -MultiViews

关于apache - Mod重写问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/602330/

相关文章:

apache - .htaccess 重定向添加哈希,同时保留查询字符串

regex - 如何为 htaccess 正则表达式定义 url 占位符 $1

apache - 我可以在 mod_rewrite 中使用相当于 %{DOCUMENT_ROOT}%{REQUEST_FILENAME} 的单个变量吗?

mysql - 将 mysql 数据库的根文件夹更改为 wamp

css无法加载其他目录中的图像

linux - .htaccess 将 a/images 映射到另一台主机上的 images.blabla.com

apache - 在 Apache HttpClient 中使用 HttpRequestInterceptor 操作请求实体

python - 解决 "django.db.utils.ProgrammingError: permission denied for relation django_migrations"的步骤

php - 在 htaccess 中重写不应用带有 2 个参数的 css

php - htaccess YouTube的URL重定向