Скажем, например, у вас есть следующий маршрут:
controller/action/someId
Давайте теперь скажем, что ваш контроллер вы хотите быть контролер (в кириллице или любом другом алфавите, так что вы получите:
контролер/action/someId
Очевидно, что вы не можете назвать класс контроллера" Контролер ", поэтому вы должны сделать это через application / config / rout.php
К сожалению, если вы идете туда и наберите:
$route['контролер/action/(:num)'] = "controller/action/$1";
для соответствия маршруту, Codeigniter НЕ будет использовать контроллер , но выдаст ошибку.
Мне потребовалось некоторое время, чтобы понять, что Codeigniter получает закодированный URL, похожий на% 5% 6% 77% 24
Таким образом, чтобы соответствовать закодированной строке, ее необходимо закодировать также в вашем rout.php .
Вы можете сделать это и сохранить код читабельным, если вы введете такой маршрут:
$route[rawurlencode('контролер').'/action/(:num)'] = "controller/action/$1";
Это закодирует часть URL, которая не является латинскими символами, вы должны использовать это также в ссылках, просто чтобы убедиться, что все параллельно и не выходит из строя где-то вдоль линии так:
<?php echo site_url( rawurlencode('контролер').'/action/'.$id ); ?>
Надеюсь, это поможет! У меня это работало без нареканий:))