2012-05-04 23 views
1

我有都是這種格式什麼是重寫www.example.com/?city_name="New-York」到/城市/紐約

www.example.com/?city_name="New-York" 

URL和我在想,如果最有效的方法有一種方法可以自動將這個url重寫爲

www.example.com/cities/new-york 

使用重寫規則。

+0

我還沒有嘗試過任何東西,因爲我不知道要往哪個方向走,而且我不太熟悉apache或mod-rewrite,但是我查看了我的.htaccess文件並試圖查看可用的不同的正則表達式模式。 –

+0

'RewriteRule^cities /(.*)$?city_name = $ 1'的一些線條 – Gerben

+0

mod_rewrite的文檔是[over here](http://httpd.apache.org/docs/2.2/rewrite/),並且有很多例子。 – larsks

回答

1

在查詢字符串上使用RewriteCond,然後使用結果RewriteRule

RewriteCond %{QUERY_STRING} ^city_name="([\w]+)" [NC] 
RewriteRule (.*) /cities/%1? [L,R] 

RewriteCond運行在查詢字符串正則表達式,尋找你city_name參數。 NC是no case標誌,使正則表達式不區分大小寫。在實際的RewriteRule指令中,我們完全重寫了/cities/%1的路徑,其中%1是來自上一次成功的RewriteCond指令的第一個匹配組,在這種情況下,請求的城市爲slug。我們在末尾放置了一個?以擦除請求中的查詢字符串,然後傳遞LR標誌以發出完整的302重定向。

相關問題