我打算在CodeIgniter中重新創建我的歌詞網站。 此刻,我的方式把它建立是這樣的:
example.com/artistname
和example.com/anotherartist
CodeIgniter網址幫助
我也有example.com/contact
和example.com/request
等。
我可以得到它是example.com/artist/artistname
,但我d真的很想讓用戶記住這些URL。
任何人都可以幫我解決這個問題嗎?
感謝, Maikel
我打算在CodeIgniter中重新創建我的歌詞網站。 此刻,我的方式把它建立是這樣的:
example.com/artistname
和example.com/anotherartist
CodeIgniter網址幫助
我也有example.com/contact
和example.com/request
等。
我可以得到它是example.com/artist/artistname
,但我d真的很想讓用戶記住這些URL。
任何人都可以幫我解決這個問題嗎?
感謝, Maikel
在application/config/routes.php
嘗試:
$route['contact'] = 'contact'; // /contact to contact controller
$route['request'] = 'request'; // /request to request controller
$route['(.*)'] = 'artist/display/$1'; // anything to artist controller, display method with the string as parameter
通過這裏的CodeIgniter用戶指南:http://codeigniter.com/user_guide/general/routing.html
可以重新映射任何東西(:any
)到您的artist
控制器。從那裏,您可以將contact
,request
等重新映射到它們各自的控制器/函數,或者您可以使用您的構造函數來檢查它們並調用正確的函數。例子:
使用URI路徑:
$route['contact'] = "contact";
$route['request'] = "request";
... // etc...
$route['(:any)'] = "artist/lookup/$1"; // MUST be last, or contact and request will be routed as artists.
使用您的構造函數:
public function __construct($uri) {
if ($uri == "contact") {
redirect('contact');
} elseif ($uri == "request") {
redirect('request');
}
}
這種方法,但是,可能會導致一個無限循環。我不會建議它,除非你的contact
和request
功能在同一個控制器。那麼你可以用$this->contact()
或$this->request()
而不是重定向來打電話給他們。
非常感謝:D – Maikel 2010-09-13 03:21:23