Поддерживаются ли не английские символы на 100% в URL-адресах codeigniter по умолчанию? - PullRequest
2 голосов
/ 21 февраля 2012

Я хочу быть уверен, что это поведение поддерживается на 100% в CodeIgniter.

Меня беспокоит то, что в config.php значение permitted_uri_chars выглядит следующим образом:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

Там написано, что разрешены только английские буквы .НО рассмотрим результаты следующих URL:

  • http://localhost/codeigniter/index.php/controller/method/hell0-there+++

Результат: The URI you submitted has disallowed characters.

  • http://localhost/codeigniter/index.php/controller/method/hello-سلام

Результат: нет проблем !!!

Слово سلام (которое написано на персидском языке и означает «привет») не может быть принято шаблоном 'a-z 0-9~%.:_\-', но оно не является ошибкойкак в предыдущем примере!

Почему это происходит?

Теперь следующий вопрос: есть ли необходимость в добавлении и включении персидских символов в шаблон??

Я думал о том, чтобы изменить config.php так:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

// Add all the persian characters after standard pattern:
$config['permitted_uri_chars'] .= 'آابپتثجچحخدذرزسشصضطظعغفقکگلمنوهیي‌۱۲۳۴۵۶۷۸۹۰';

Ответы [ 3 ]

2 голосов
/ 21 февраля 2012

Не-ASCII символ должен быть закодирован URLE, преобразуя их в %F3 и т. Д. Что, я считаю, будет разрешено на основе % и a-z 0-9

1 голос
/ 20 февраля 2015

Используйте его таким образом, измените файл конфигурации:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-|آ-ی';

Таким образом, он поддерживает все символы, кроме «Хамзе». И если вы хотите поддержать «Хамзе», вы можете изменить его следующим образом:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-|آ-یء';
0 голосов
/ 24 ноября 2016

Я только что прочитал ваш вопрос, и у него есть простой ответ, которого я достиг! Ответ:

$route[urlencode ('ورود-به-حساب-کاربری')] = 'Login';

Вам не нужно манипулировать вашим конфигурационным файлом, как вы сказали! Так что вам нужно только установить эту строку кода в свой route.php. У меня это работает.

...