2009-10-04 77 views
1

我使用以下重写规则重写规则,但我不能得到它的工作:帮助不工作

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

我使用的URL是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] 

回答

3

这可能MultiViews是造成这种现象,映射/rates/motorhomes.php/rates.php/motorhomes.php请求传递通过对mod_rewrite的之前。尝试禁用它:

Options -MultiViews 
+0

谢谢!所有这一切,它是如此简单..... grrr – 2009-10-04 21:29:49