自定义路由在Codeigniter 3.0.2中不起作用

时间:2015-10-11 08:01:19

标签: php codeigniter routes

我的自定义路线有问题!

我的路由代码在CI3.0.1中运行正常,但在升级到CI3.0.2后,它只显示404我的自定义路由! 我的.htaccess工作正常,因为我刚刚将app / config / constants.php文件和系统/文件夹上传到我的主机(如升级文档中所述)

有谁知道,导致问题的原因是什么?!

url:http://www.example.net< - 默认控制器工作正常 url:http://www.example.net/admin< - 使用路线,显示404
url:http://www.example.net/admin/index< - 工作正常O.o!

$route['default_controller'] = 'ctrl_main';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

$route['(:any)'] = 'ctrl_main/$1';
$route['main'] = 'ctrl_main';
$route['main/(:any)'] = 'ctrl_main/$1';
$route['main/(:any)/(:num)'] = 'ctrl_main/$1/$2';
$route['main/(:any)/(:any)/(:num)'] = 'ctrl_main/$1/$2/$3';
$route['main/(:any)/(:any)'] = 'ctrl_main/$1/$2';
$route['main/(:any)/(:any)/(:any)/(:num)'] = 'ctrl_main/$1/$2/$3/$4';

$route['admin'] = 'ctrl_admin';
$route['admin/(:any)'] = 'Ctrl_admin/$1';
$route['admin/(:any)/(:num)'] = 'Ctrl_admin/$1/$2';

1 个答案:

答案 0 :(得分:1)

当您输入http://www.example.net/admin时,会通过

进行路由
$route['(:any)'] = 'ctrl_main/$1';

因此CodeIgniter假设admin控制器中有方法ctrl_main

您的路线$route['(:any)']绝不会允许任何路线。阅读有关文档中路由的优化。您应该将$route['(:any)'] = 'ctrl_main/$1';保留在routes.php文件的末尾。