我有两个不同的控制器,我想将它们路由到同一个URL。
例如
$route['dashboard/(:any)'] = 'admin/crud/$1';
$route['dashboard/(:any)'] = 'admin/dashboard/$1';
但这会导致 404 错误。
我想:any
通配符存在一些问题。
有没有替代使用方法?
CodeIgniter 不会将控制器映射到 URL,而是将 URL 映射到控制器。请参阅 URI 路由。
您正在尝试映射两个完全相同的 URL 以转到不同的地方。这说不通。
此外,由于$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
控制器类中的方法。
另外,请查看此问题和接受的答案: 子文件夹中的路由控制器 - 代码点火器 我认为它提供了您尝试执行的操作的示例。