Codeigniter路由don';我不能正常工作
我在路由配置中有两个字符串Codeigniter路由don';我不能正常工作,codeigniter,codeigniter-2,codeigniter-routing,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的新手。路线按照定义的顺序运行。您的第二个将永远不会被应用,因为(:any)通配符正
$route['education/course/(:any)'] = "education/course/$1";
$route['education/course/(:any)/(:num)'] = "education/lection/$1/$2";
但是当我进入/education/course/my_-course/1
时,第一条规则起作用了,但第二条没有
请帮忙!我是CI的新手。路线按照定义的顺序运行。您的第二个将永远不会被应用,因为(:any)通配符正在捕获任何内容 我认为您应该能够切换订单,因此最具体的是第一个,其次是最不具体的:
$route['education/course/(:any)/(:num)'] = "education/lection/$1/$2";
$route['education/course/(:any)'] = "education/course/$1";
因为这两条路线在前三段中是相似的
education / course / (:any)
由于Route.php运行程序化(逐行)
请求类似于/education/course/my_course/1
的页面与第一条路线模式(如下)匹配
此外,请求类似于/education/course/my_course/1/23
的页面仍将匹配第一个路由模式,因为route.php只关心您请求的URL链接是否匹配指定的路由模式,否则请检查下一个路由
因此,切换路由顺序将解决问题
$route['education/course/(:any)'] = "education/course/$1";