У меня проблема с моими собственными маршрутами!
мои коды маршрутов отлично работают в 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 <- отлично работает Oo!
$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';
Когда вы набираете http://www.example.net/admin, он прокладывается через
$route['(:any)'] = 'ctrl_main/$1';
Поэтому CodeIgniter предполагает, что в контроллере ctrl_main
есть метод admin
.
Ваш маршрут $route['(:any)']
никогда не позволит использовать какие-либо маршруты. Читайте о преимуществах маршрутизации в документах. Вы должны сохранить $route['(:any)'] = 'ctrl_main/$1';
в конце файла routes.php
.
$route['(:any)']
качестве первого маршрута. Вы должны сортировать свои маршруты по приоритетам в соответствии с документацией. Если это решило вашу проблему, вы можете проверить ответ как правильный. Удачного кодирования.