Привет, я не знаком с CI, но у меня похожая система маршрутизации. ((Любой) работает как своего рода ловить всех. Когда мой маршрутизатор проверяет правила маршрутизации, он перестает проверять, найдено ли точное совпадение. Тогда ответом будет просто добавить еще один маршрут функций, прежде чем перехватывать все. Как
$route['users'] = "users/index/";
$route['users/messages/(:any)'] = "users/checkmessages/$1";
$route['users/(:any)'] = "users/$1";
Не уверен, как CI справляется с этим, но я могу думать о чем-то вроде: первая часть URL - это класс, а вторая - функция. Маршрутизатор или модуль контроллера должны обладать интеллектом, чтобы начать вызывать функцию даже без таблицы маршрутизации.
Таблицу маршрутизации следует использовать только в случае «других вызываемых имен», как я делал выше с сообщением / checkmessages штукой.
надеюсь, что это поможет вам.