我想在下面这样显示我的页面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";