2011-11-26 27 views
0

對於codeignitor我目前的項目,我需要做出這樣的爲多個控制器創建簡短URL?

http://domain.com/userid 

用戶配置文件然後我試圖在router.php

$route['(:any)'] = 'profile/user/$1'; 

這是工作的罰款添加此。現在,我想再拍URL語言這樣

http://domain.com/es 
http://domain.com/fr 

至於這兩個網址URI段是第一個,當我輸入

http://domain.com/es 

我看到的

http://domain.com/userid 

我的頁面我正在使用.htaccess文件去除codeignitor中的index.php。有沒有什麼幫助,我怎麼可以在爲多個控制器拍攝網址中完成此任務。要麼與.htaccess或router.php?

回答

1

由於路線系統是自上而下運作的,如果您有多個可以匹配網址的規則,它會選取第一個。所以你可以這樣做:

$route['(es|fr|en)'] = 'language/$1'; 
$route['(:any)'] = 'profile/user/$1'; 

如果第一個規則匹配,它將運行,否則它測試配置文件規則。
你肯定會繼續運行到,雖然與輪廓規則的問題,如果你不喜歡的東西會更容易:

$route['users/(:any)'] = 'profile/user/$1'; 

這樣它會更清楚的URL是幹什麼的,它會幫助你在你將來編寫規則的時候。

+0

謝謝mazzz回答。它只是盯着我的項目,所以我沒有更改$ route ['users /(:any)'] ='profile/user/$ 1';但我想在沒有用戶在domin.com/user/id網址,你認爲我應該通過。htaccess做到這一點,或將會給出相同的結果嗎? –

+0

它會給出同樣的結果,我和你有同樣的問題。我一直在關注如何使url更漂亮,但它並不重要,最後,使用'users /(:any)'將使你的生活變得更加簡單,並且使代碼更容易維護,好。 – Ben