CodeIgniter URL帮助

时间:2010-09-13 00:30:28

标签: codeigniter routing codeigniter-url

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

我还有example.com/contactexample.com/request等等。

我可以让它成为example.com/artist/artistname,但我真的很想让用户记住网址。

任何人都可以帮我解决这个问题吗?

谢谢, Maikel

2 个答案:

答案 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控制器。从那里,您可以将contactrequest等重新映射到各自的控制器/函数,或者您可以使用构造函数检查这些并调用正确的函数。例子:

使用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()而不是重定向来调用它们。