2010-09-01 34 views

回答

9

如果你希望你的网址为http://www.mydomain.com/zarpio,你想它来指your_controller,然后执行以下操作,您可以使用笨的URL路由...

做到这一点。

/config/routes.php

$route['(.*)'] = "your_controller/$1"; // Now, `zarpio` will be passed to `your_controller` 

你可以在你的控制器这样的访问...

$my_name = $this->uri->rsegment(2); 

不过我不建议配置URL的这种方式。更好的办法是......

$route['users/(.*)'] = "your_controller/$1"; 

这样一来,你只是重新命名控制器名称your_controllerusers

如果要访问用户的个人资料,你可以做这样的...

$route['users/profile/(.*)'] = "another_controller/method/$1"; 
$route['users/(.*)'] = "your_controller/$1"; 

考虑路由的顺序。由于您在路线中写下了users/(.*),因此它将匹配users/zarpio以及users/profile/zarpio,并将它们都路由到your_controller/$1,这在配置文件的情况下会给您一个404 page not found错误。这就是为什么您需要在users/(.*)之前在路由配置中写入users/profile/(.*)

更多的信息在codeigniter URI class documentation

+0

请你能给我完整的教程吗? – zarpio 2010-09-01 13:25:18

+0

谢谢ShiVik我做到了。你是天才 – zarpio 2010-09-01 13:33:06

+0

@ShiVik你能解决我的另一个问题吗?我正在使用$ route ['(。*)'] =“your_controller/$ 1”;到我的routes.php现在的问题是,当我转到www.mydomain.com/myanothercontroller/method ... 404页面未找到...是否还有什么要做的config/routes.php文件? – zarpio 2010-09-05 14:45:27