首页 文章

Codeigniter路由无法正常工作

提问于
浏览
0

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

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

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

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

请帮忙!我是CI的新手 .

2 回答

  • 0

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

    我相信你应该能够切换订单,所以最具体的是第一个,然后是最不具体的:

    $route['education/course/(:any)/(:num)'] = "education/lection/$1/$2";
    $route['education/course/(:any)'] = "education/course/$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链接是否与指定的路由模式匹配,否则请检查下一个路由 .

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

相关问题