我有两个不同的控制器,我想要路由到同一个URL。
例如,
$route['dashboard/(:any)'] = 'admin/crud/$1';
$route['dashboard/(:any)'] = 'admin/dashboard/$1';
但这导致404错误。
我想:any
通配符存在一些问题。
有替代品可供使用吗?
答案 0 :(得分:0)
CodeIgniter没有将控制器映射到URL,它将URL映射到控制器。请参阅 URI Routing 。
您正尝试将两个相同的网址映射到不同的地方。这没有意义。
此外,由于$route
只是一个关联数组,因此您将覆盖该值而不是添加其他路径。
$route['dashboard/(:any)'] = 'admin/crud/$1';
$route['dashboard/(:any)'] = 'admin/dashboard/$1'; //Immediately over writes the previous value
所以,看起来你只是遇到了第二条路线的问题:
$route['dashboard/(:any)'] = 'admin/dashboard/$1';
因为admin是文件夹,请仔细检查路由传入的值实际上是dashboard
控制器类中的方法。
另外,请查看此问题并接受答案:routing controllers in sub folders - codeigniter我认为它提供了您尝试执行的操作的示例。