Пользовательские маршруты не работают в Codeigniter 3.0.2

1

У меня проблема с моими собственными маршрутами!

мои коды маршрутов отлично работают в 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';
  • 0
    Вы изменили htaccess или apache config / setup
  • 0
    нет, я просто использовал htaccess, который я использовал для CI3.0.1
Показать ещё 5 комментариев
Теги:
codeigniter
routes

1 ответ

1
Лучший ответ

Когда вы набираете http://www.example.net/admin, он прокладывается через

$route['(:any)'] = 'ctrl_main/$1';

Поэтому CodeIgniter предполагает, что в контроллере ctrl_main есть метод admin.

Ваш маршрут $route['(:any)'] никогда не позволит использовать какие-либо маршруты. Читайте о преимуществах маршрутизации в документах. Вы должны сохранить $route['(:any)'] = 'ctrl_main/$1'; в конце файла routes.php.

  • 0
    да, как вы сказали, но я не понимаю, почему этот код работает правильно в CI 301
  • 0
    Я не могу найти логику в неправильности. Таким образом, я предлагаю то, что рекомендуется. Во-первых, вы не должны оставлять $route['(:any)'] качестве первого маршрута. Вы должны сортировать свои маршруты по приоритетам в соответствии с документацией. Если это решило вашу проблему, вы можете проверить ответ как правильный. Удачного кодирования.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню