我打算在CodeIgniter中重新创建我的歌词网站。
目前,我设置的方式是这样的:
example.com/artistname
和example.com/anotherartist
我还有example.com/contact
和example.com/request
等等。
我可以让它成为example.com/artist/artistname
,但我真的很想让用户记住网址。
任何人都可以帮我解决这个问题吗?
谢谢, Maikel
答案 0 :(得分:3)
在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
答案 1 :(得分:0)
通过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()
而不是重定向来调用它们。