2009-07-13 89 views
0

我想寫一個規則,說基本mod_rewrite的問題

xyz.com/hotels_in_someplace將直接使用到xyz.com/test.php?place=someplace

在我的htaccess

以下
RewriteEngine On 
RewriteBase/

RewriteRule ^hotels_in_([a-z]+)$ test.php?place=$1 [L] 

但它不工作,我不知道爲什麼,我正在運行一個wamp服務器作爲開發者。當我試圖運行xyz.com/test.php?place=someplace(沒有在目錄中的htaccess)它的作品,但我懷疑有一些我的規則是錯誤的。

補充: 哎呦....我的啞巴屁股錯誤,mod_rewrite的wasnt啓用...

+0

它究竟如何不工作? – 2009-07-13 16:07:02

回答

0

更新:之前我沒有,所以我對斜線點爲空注意到問題的RewriteBase。然而,RewriteRule在我的機器上工作。


嘗試:

RewriteRule ^hotels_in_([a-z]+)$ /test.php?place=$1 [L] 

的路徑test.php的需要斜線。你重寫的方式將被重定向到xyz.com/path/to/web/docs/on/machine/test.php,那不是你想要的。 :)

此外,如果你是你在測試中包括一個尾隨斜線。

以上規則不符合xyz.com/hotels_in_someplace/

爲了配合斜線這應該工作:

RewriteRule ^hotels_in_([a-z]+)/?$ /test.php?place=$1 [L] 
1

嘗試沒有行尾錨($)

RewriteRule ^/hotels_in_([a-z]+) /test.php?place=$1 [L] 

另外,你允許解析的.htaccess文件?

0

你的例子適合我。可能想進行一些小的調整(參見我的示例,該示例捕獲大寫字母,連字符和下劃線(適用於具有多個單詞(united-states,united_states))和尾隨正斜槓的國家/地區的酒店。

RewriteRule ^hotels_in_([A-Za-z_-]*)(/?)$ /test.php?place=$1 

希望有所幫助。