Codeigniter路由无法正常工作

时间:2014-06-16 02:24:43

标签: codeigniter codeigniter-2 codeigniter-routing

我在路由配置中有两个字符串。

$route['education/course/(:any)'] = "education/course/$1";

$route['education/course/(:any)/(:num)'] = "education/lection/$1/$2";

但是当我去/education/course/my_course/1时,第一条规则有效,但第二条规则没有。

请帮忙!我是CI的新手。

2 个答案:

答案 0 :(得分:0)

路线按照定义的顺序运行。你的第二个永远不会被应用,因为(:any)通配符正在捕获,以及任何东西。

我相信您应该能够切换订单,因此最具体的是首先,然后是最不具体的:

$route['education/course/(:any)/(:num)'] = "education/lection/$1/$2";
$route['education/course/(:any)'] = "education/course/$1";

答案 1 :(得分:0)

由于前两个路段的两条路线相似

education / course / (:any)

由于Route.php运行程序(逐行),

请求类似/education/course/my_course/1的页面匹配第一个路由模式(下面)

$route['education/course/(:any)'] = "education/course/$1";

而且,请求像/education/course/my_course/1/23这样的页面仍然会匹配第一个路由pattrn,因为Route.php只关心您请求的URL链接是否与指定的路由模式匹配,否则请检查下一个路由。 / p>

因此,切换路线的顺序将解决问题。