我计划在 CodeIgniter 中重新创建我的歌词网站。目前,我设置它的方式是这样的:
example.com/artistname
和example.com/anotherartist
我也有example.com/contact
等等example.com/request
。。
我可以做到example.com/artist/artistname
,但我真的很想保持简单,让用户记住网址。
谁能帮我解决这个问题?
谢谢, 迈克尔
我计划在 CodeIgniter 中重新创建我的歌词网站。目前,我设置它的方式是这样的:
example.com/artistname
和example.com/anotherartist
我也有example.com/contact
等等example.com/request
。。
我可以做到example.com/artist/artistname
,但我真的很想保持简单,让用户记住网址。
谁能帮我解决这个问题?
谢谢, 迈克尔
在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()
代替重定向来调用它们。