Codeigniter:所有阿拉伯语路线均不起作用

时间:2019-05-20 22:54:29

标签: codeigniter routes urlencode arabic-support

[更新]

已添加到配置中,但仍无法正常工作

$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 ['albums']之类的英语内容,效果很好。

我使用了相同的路由而不进行编码,并且得到了相同的错误“找不到对象!在此服务器上找不到请求的URL。”

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

经过所有澄清,归结为您的服务器如何处理字符编码。

这是另一个类似的Stack Overflow问题中的link。它有许多以不同方式处理它的答案。这是一个对htaccess文件执行重写规则的程序。

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