帮助重写规则无法正常工作

时间:2009-10-04 20:56:47

标签: mod-rewrite

我正在使用以下重写规则,但我无法让它工作:

RewriteRule  ^rates/([a-z]+)\.php$  /rates.php?c_user_action=view_type&vehicle_type=$1  [QSA,L,NC]

我使用的网址是http://www.example.com/rates/motorhomes.php

目前它只是在没有查询字符串的情况下转到/rates.php。

奇怪的是,如果我将重写表达式更改为^rates-([a-z]+)\.php$并将URL更改为http://www.example.com/rates-motorhomes.php,那么它可以正常工作。

我在其他网站/服务器上使用了类似的东西没有任何问题,但我无法弄清楚我在这里做错了什么。该服务器正在运行Apache 2.2。

我知道mod_rewrite正在运行,因为以下2条规则有效:

RewriteRule  ^blah([a-z]+)\.php$  /rates.php?test=$1  [L]
RewriteRule  ^(.*)\.[\d]+\.(css|js)$  $1.$2  [L]

1 个答案:

答案 0 :(得分:3)

可能MultiViews导致此行为,在将请求传递给mod_rewrite之前将/rates/motorhomes.php映射到/rates.php/motorhomes.php。尝试禁用它:

Options -MultiViews