CodeIgniter проблема с русскими символами в URL

Станислав
На сайте с 27.12.2009
Offline
237
998

Может кто сталкивался с данной проблемой и подскажет как ее решить.

Есть проект на старом фреймворке 2009 года, решил пересадить его на свежую версию 2.1.4

Все бы ничего, но есть адреса вида

/раздел/название_новости/

что раздел, что название новости, содержать русские символы.

В итоге получаю 404

В routes

$route['новость/(:any)'] = 'my_controller/news/$1';

Колупаю дальше в конфиге

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

меняю на

$config['permitted_uri_chars'] = '?A-Za-zА-Яа-я=\s&0-9~%\.:_-';

Не помогает.

Открываю системный файл фреймворка, который отвечает за урлы

Нахожу строку

if ( ! preg_match("|^[".str_replace(array('\\-', '\-'), '-', preg_quote($this->config->item('permitted_uri_chars'), '-'))."]+$|i", $str))

меняю ее на

if ( ! preg_match("|^[".str_replace(array('\\-', '\-'), '-', preg_quote($this->config->item('permitted_uri_chars'), '-'))."]+$|iu", $str))

В итоге 404 как была так и осталась.

Мы там, где рады нас видеть.
bay_ebook
На сайте с 28.05.2010
Offline
111
#1

ну как бы саму кириллицу в урл не всунуть

Юзаем rawurlencode и выставляем регулярку под неё.

ПС в системном файле ничего менять не нужно. Делал, знаю точно.

ПСС - CI по факту закрылся, найдут или нет нового владельца незнают. Так что, лучше бы стразу на Yii (или аналог) переходили.

Нужен прогер на php+mysql+понимание чужего кода? (/ru/forum/540660) Вам сюда PHP-шаман (http://php-shaman.pw/)
Станислав
На сайте с 27.12.2009
Offline
237
#2

Попробую.

А на аналог переходить нет желания. Колупал код других фреймворков в частности и Yi не понравилась как структура так и сам код.

Тем более CI мне более понятен, так как пусть и юзал старый, но все таки, более понят он мне.

T
На сайте с 26.06.2013
Offline
2
#3
CI по факту закрылся, найдут или нет нового владельца незнают

CI, по факту, практически не меняется уже несколько лет. Поэтому от того, что он "закрылся" никаких особых последствий не будет.

Создание сайтов на система управления сайтами http://tixcms.ru (http://tixcms.ru)
bay_ebook
На сайте с 28.05.2010
Offline
111
#4
tixcms:
CI, по факту, практически не меняется уже несколько лет. Поэтому от того, что он "закрылся" никаких особых последствий не будет.

ну не скажите. Вот не так давно, всего год назад перешли на пхп 5, а то есть public/protectid начали использовать в классах. Это достижение все-таки :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий