2011-04-14 22 views
0

我是CodeIgniter的新手。如何在CodeIgniter中設計用戶友好的URI?

我需要設計一個簡單的網站,我從數據庫中提取信息。數據庫中的信息與廣告有關。我有關於國家,國家/地區,區域位置和廣告種類的信息。

我的目標是有一個URI,如:

http://www.someurl.com/index.php/country/country_zone/zone_location/ad_type/title_of_ad 

有一些信息,在那裏就如何使用CodeIgniter做到這一點?

最好的問候,

+0

CI反應器具有查詢字符串的支持 - 你可能會更好看,作爲一個URI一樣,可能會比較混亂非常快,而'?country = uk&zone = sw&ad_type = full&title = foo'至少有一些語義含義(也可能來自SEO視角以及用戶) – Ross 2011-04-14 15:40:51

+0

我認爲這對你顯示你當前的URL實際上看起來像。有大約一百萬種方法來完成你所要求的事情,這取決於你正在處理的事情。我也會發布你的控制器。 – 2011-04-14 19:53:17

回答

1

我認爲最簡單的方法是在你的application/config/routes.php定製路線。事情是這樣的:

$route['^(:any)/(:any)/(:any)/(:any)/(:any)'] = "your_controller/get_ads/$1/$2/$3/$4/$5"; 

那麼你的控制器功能看起來是這樣的:

function get_ads($country, $country_code, $zone_location, $ad_type, $title_of_ad) { 
    // your code 
} 

..你可以有一個更具體的正則表達式替換(:any)如果有一些模式的參數。

0

鏈接中的前2個參數是您的控制器名稱以及您要調用的控制器的方法。

所以

http://www.someurl.com/index.php/country/country_zone/zone_location/ad_type/title_of_ad 

將意味着你打電話給你country控制器的country_zone方法,並傳遞zone_location,add_type和title_of_ad該方法。

你想要什麼IST

http://www.someurl.com/index.php/TheControler/themethod/country/country_zone/zone_location/ad_type/title_of_ad 

實現這樣的:

class TheControler extends Controler{ 
    function themethod($country,$country_zone,$zone_location,$ad_type,$title_of_ad){ 
     //your code 
    } 
}