Codeigniter - Twitter类似URI路由

时间:2010-10-23 01:45:12

标签: codeigniter

说我想要以下URL方案,我通过设置以下URI路由来完成工作。

http://www.domain.com/profile/jimbob123

$route['profile'] = "profile/index";
$route['profile/(:any)'] = "profile/index/$1";

现在,假设我希望显示“状态”时,我希望我的网址如下所示。

http://www.domain.com/profile/jimbob123/status/908734efc

如何将“jimbob123”和“908734efc”传递给我的方法,以便查看和检索此特定记录?我尝试了以下但它似乎不起作用。

$route['user/(:any)/status/(:any)'] = "user/plan/$1/$2";

1 个答案:

答案 0 :(得分:3)

我假设您在user/(:any)/status/(:any)写下了profile/(:any)/status/(:any)

这可能是一个问题,也是这个问题:

路线按照声明的顺序进行匹配。如果你这样写:

$route['profile'] = "profile/index";
$route['profile/(:any)'] = "profile/index/$1";
$route['profile/(:any)/status/(:any)'] = "user/plan/$1/$2";

它无法正常工作,因为“http://www.domain.com/profile/jimbob123/status/908734efc”与第二条路线匹配。

如果换掉第二行和第三行,你应该很好。

$route['profile'] = "profile/index";
$route['profile/(:any)/status/(:any)'] = "user/plan/$1/$2";
$route['profile/(:any)'] = "profile/index/$1";