Как удалить имя контроллера из URL-адреса в codeigniter и при этом иметь возможность перенаправлять на другой контроллер?

Я создаю веб-сайт с помощью Codeigniter и изменил внешний вид URL-адреса с http://localhost/site_controller/home на http://localhost/home.

Я изменил это, используя .htaccess -> RewriteBase, изменив $config['index_page'] на $config['index_page'] = '';
и в маршрутах, которые я изменил следующим образом:

$route['default_controller'] = "site";

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

И он отлично работает только для контроллера site, НО моя проблема в том, что у меня есть другой контроллер с именем admin, и когда я пытаюсь войти и сделать перенаправление с помощью redirect('admin /index') я получаю ошибку 404.

Как я могу перенаправить с контроллера сайта на контроллер администратора?


person Arron    schedule 11.09.2013    source источник


Ответы (1)


Если вы собираетесь маршрутизировать из (:any) => site, вы должны указать маршрут с более высоким приоритетом для контроллера администратора, который переопределяет этот маршрут для этих страниц.

$route['default_controller'] = "site";

$route['admin/(:any)'] = "admin/$1";
$route['(:any)'] = "site/$1";
person Bad Wolf    schedule 11.09.2013