Search code examples
codeignitercodeigniter-2codeigniter-routing

Codeigniter routes don't work correctly


I have two string in routing config.

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

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

But when I went to /education/course/my_course/1, the first rule worked, but the second didn't.

Please help! I'm newbie in CI.


Solution

  • Routes run in the order they are defined. Your second one will never be applied because the (:any) wildcard is capturing, well, anything.

    I believe you should be able to switch the order so the most specific is first, followed by the least specific:

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