CodeIgniter __remap () маршрутизирует более одного контроллера - PullRequest
0 голосов
/ 17 июня 2011

Я пытаюсь создать сокращение URL-адресов с использованием CodeIgniter 2.

У меня есть 2 контроллера: main и api.

Для перенаправления короткой ссылки через маршрутизатор я использую этот параметр в config/routes:

$route['(.*)'] = "main/$1";

вместе с методом в контроллере main, который должен работать. Однако контроллеры не запускаются. Пожалуйста, помогите мне решить эту проблему.

1 Ответ

1 голос
/ 17 июня 2011

Ваш контроллер "any" не вызывается, потому что он попадает в это регулярное выражение, поэтому он перенаправляется на main. Чтобы исключить «любое» из этого правила, вам необходимо создать для него специальное правило, помня, что для CI правила каскадные , поэтому они выполняются в порядке их представления

Примечание. Маршруты будут выполняться в порядке они определены. Высшие маршруты будут всегда иметь приоритет над более низким из них.

Итак, вы бы получили:

// reserved routes must come before custom routes
$route['default_controller'] = "home";
$route['404_override'] = '';
$route['any'] = //your rule here. maybe "any". ?
$route['(.*)'] = "main/$1";  // CI also provides you with `(:any)` rule, that mateches any character.

Подробнее об этом здесь: Uri маршрутизация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...