0

我计划在 CodeIgniter 中重新创建我的歌词网站。目前,我设置它的方式是这样的:
example.com/artistnameexample.com/anotherartist

我也有example.com/contact等等example.com/request。。

我可以做到example.com/artist/artistname,但我真的很想保持简单,让用户记住网址。

谁能帮我解决这个问题?

谢谢, 迈克尔

4

2 回答 2

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
于 2010-09-13T00:51:23.797 回答
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');
    }
}

但是,这种方法可能会导致无限循环。我不建议这样做,除非您的contactrequest功能在同一个控制器中。然后,您可以使用$this->contact()$this->request()代替重定向来调用它们。

于 2010-09-13T00:52:32.470 回答