Маршрутизация кириллицы в codeigniter - PullRequest
1 голос
/ 20 января 2012

Как разрешить маршрутизацию кириллицы в codeigniter?

Ответы [ 2 ]

3 голосов
/ 20 июня 2013

Скажем, например, у вас есть следующий маршрут:

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 ); ?>

Надеюсь, это поможет! У меня это работало без нареканий:))

0 голосов
/ 20 января 2012

В файле application/config/config.php найдите $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; и добавьте туда каждый допустимый символ - например:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...