如何在codeigniter路由文件中提供URL

时间:2016-03-24 08:55:53

标签: php codeigniter

我想在下面显示我的网页网址

主页(登录后)

www.domain.com/username

关于Aboutme页面

www.domain.com/username/about

我的路线文件行

这个适用于主页

$route['(:any)'] = "pages/userList";    //This worked for home page

但是这个没有用,这个页面也适用于主页

$route['(:any)/about'] = "pages/about";   //Not worked

2 个答案:

答案 0 :(得分:1)

(:any)将捕获所有内容,因此它不应该是第一条规则。

最好在用户名之前使用任何段,例如:

www.domain.com/user/username则规则为:

$route['user/(:any)'] = "pages/userList/$1";

它将匹配:www.domain.com/user/adam,www.domain.com/user/bob等......

为此:www.domain.com/username/about

$route['about/(:any)'] = "pages/about/$1";

它将匹配:www.domain.com/about/adam,www.domain.com/about/bob等... 在您的控制器中,您可以获得用户名:

$username = $this->uri->rsegment(3);

答案 1 :(得分:0)

问题是因为APPPATH.'config/routes.php'文件中的路由优先级。 Docs下一步说:

  

路线将按照定义的顺序运行。较高的路线总是优先于较低的路线。

遵守该规则,应首先显示非常具体的路线,并且大多数常规路线必须位于文件末尾。在你的情况下,它会像:

$route['(:any)/about'] = "pages/about";
$route['(:any)'] = "pages/userList";