Codeigniter: все арабские маршруты не работают - PullRequest
1 голос
/ 21 мая 2019

[Обновить]

Добавлен в конфигурацию, но все еще не работает

$config['permitted_uri_chars'] .= '%D8%A2%D8%A7%D8%A8%D9%BE%D8%AA%D8%AB%D8%AC%DA%86%D8%AD%D8%AE%D8%AF%D8%B0%D8%B1%D8%B2%D8%B3%D8%B4%D8%B5%D8%B6%D8%B7%D8%B8%D8%B9%D8%BA%D9%81%D9%82%DA%A9%DA%AF%D9%84%D9%85%D9%86%D9%88%D9%87%DB%8C%D9%8A%DB%B1%DB%B2%DB%B3%DB%B4%DB%B5%DB%B6%DB%B7%DB%B8%DB%B9%DB%B0';

$config['charset'] = 'UTF-8'; //by default

Я обновил Codeigniter с 2.1 до 2.2, затем на 3. У меня проблема в маршрутах вАрабские символы перенаправляются на страницу «Объект не найден»

$route['cat/(:any)/(:any)'] = 'cat/index/$1/$2';
$route['tour/(:any)/(:any)'] = 'tour/index/$1/$2';
$route['sub_category/(:any)/(:any)'] = 'sub_category/index/$1/$2';
$route['default_controller'] = "home";
$route['404_override'] = '';
$route['order'] = 'order/index/';
$route[urlencode('البومات-الصور')] = 'gallery/index/$1'; //the Arabic one which is not working

И когда я повторяю urlencode ('البومات-الصور');Я получаю

%D8%A7%D9%84%D8%A8%D9%88%D9%85%D8%A7%D8%AA-%D8%A7%D9%84%D8%B5%D9%88%D8%B1 

Если я изменяю urlencode ('البومات-الصور') на что-либо на английском языке, например, $ route ['album'], он работает нормально.

Я использовал тот же маршрут безкодирование и я получаю ту же ошибку «объект не найден! Запрошенный URL не найден на этом сервере».

Как решить эту проблему?

1 Ответ

1 голос
/ 21 мая 2019

После всех этих разъяснений все сводилось к тому, как ваш сервер обрабатывает кодировку символов.

Вот ссылка из другого похожего вопроса переполнения стека.У него много ответов, по-разному.Вот тот, который выполняет правило перезаписи для файла htaccess.

RewriteRule ^([\s\S]*)$ index.php?rt=$1 [L,B,QSA]
...