2009-10-04 97 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