如何在codeigniter路由文件中给出URL


How to give URL in codeigniter route file

我想在下面这样显示我的页面url

主页(登录后)

www.domain.com/username

关于页面

www.domain.com/username/about

我的路线文件行

这个适用于主页

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

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

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

(: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);

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

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

根据这个规则,非常具体的路由应该首先出现,大多数一般的路由需要在文件的末尾。在你的情况下,它会像:

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