2012-06-24 19 views
0

是否有可能做一個URL重寫其中類似http://www.myurl.com/usa/california/sanjose一個url這裏重定向到http://www.myurl.com/c=1&st=3&area=14URL重寫 - 名稱爲數字(阿帕奇)

的問題是,這一切的時候,我們已經使用過的URL一樣http://www.myurl.com/c=1&st=3&area=14所有區域規定並且數據庫中的數字代表各國。所以在上面的例子中,如果usa/california/sanjose重定向到c = 1,& st = 3 & area = 14,面積= 3。數字根據國家,州和城市而變化。

URL可以根據名稱自動將改名改爲數字,或者我們必須更新數據庫並將所有數字更改爲名稱,以便php文件可以根據名稱而不是數字繪製數據。

回答

1
  1. 你可以重寫基礎上的名字,但是這將是一個規則集的地獄(你需要重寫相應的每一個國家的名字,每一個國家的名字,每一個區域 - 基本上所有的數據庫)。

  2. 數據庫中是否還有國家和州名?我建議你獲取名稱,將它們翻譯爲ID,然後使用像以前一樣的ID(這是首選)。

規則集,以漂亮的URL轉換爲參數:

RewriteEngine On 
RewriteRule ^([^/]+)/([^/]+)/([^/]+) /?country_name=$1&state_name=$2&area_name=$3 [L,QSA] 
RewriteRule ^([^/]+)/([^/]+) /?country_name=$1&state_name=$2 [L,QSA] 
RewriteRule ^([^/]+) /?country_name=$1 [L,QSA] 

第一條規則重寫所有threee參數,可以第二的國家,州和第三 - 全國唯一 你甚至可以指出這爲其他文件(不您的常規索引),然後在將參數轉換爲ID之後 - 包括原始處理程序

+0

最後,我們決定使用與其編號對應的國家,城市和地區名稱更新數據庫。然後我們做了一個htaccess文件,其中的規則有點類似於你的建議。現在一切似乎都很好。 – Norman