Динамическая маршрутизация в CodeIgniter с такими исключениями, как admin - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь настроить механизм маршрутизации в CodeIgniter. За исключением некоторых контроллеров, таких как admin, я хочу направлять запросы на мой контроллер по умолчанию.

Я попробовал следующее:

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

$route["([^\\<(admin|login)\\>+-])/"] = 'pages/get/en/$1';
$route["([\\<(admin|login)\\>+-])/"] = 'pages/get/en/$1';
$route['(:any)'] = 'pages/get/en/$1'; // line_1
$route['(:any)/(:any)'] = 'pages/get/$1/$2'; // line_2

$route['admin'] = 'admin';

Если я прокомментирую строку line_1 и line_2, URL-адрес администратора перейдет к admin, но индекс даст 404. Если я раскомментирую их, ссылка Admin перейдет кКонтроллер страниц.

1 Ответ

0 голосов
/ 01 октября 2019

Я понял, что это проблема чувствительности к регистру.

Я попробовал это, и это сработало:

if ($default_lang == "") $default_lang = "en";

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

$route['(?i)Admin'] = 'admin';
$route['(?i)Admin/(:any)'] = 'admin/$1';

$route['(?i)News/(:any)'] = 'news/get/' . $default_lang . '/$1';
$route['(?i)News/(:any)/(:any)'] = 'news/get/$1/$2';

$route['(:any)'] = 'pages/get/' . $default_lang . '/$1';
$route['(:any)/(:any)'] = 'pages/get/$1/$2';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...