Codeigniter:所有阿拉伯语路线均无效
Codeigniter: All Arabic routes are not working
[更新]
已添加到配置中但仍无法正常工作
$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。我遇到的问题是阿拉伯字符的路由,我被重定向到 "Object not found" 页面
$route['cat/(:any)/(:any)'] = 'cat/index//';
$route['tour/(:any)/(:any)'] = 'tour/index//';
$route['sub_category/(:any)/(:any)'] = 'sub_category/index//';
$route['default_controller'] = "home";
$route['404_override'] = '';
$route['order'] = 'order/index/';
$route[urlencode('البومات-الصور')] = 'gallery/index/'; //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'] 它工作正常。
我在没有编码的情况下使用了相同的路由,但我得到了相同的错误"object not found! The requested URL was not found on this server."
如何解决这个问题?
所有这些说明之后,归结为您的服务器如何处理字符编码。
这是来自另一个类似的 Stack Overflow 问题的 。它有许多以不同方式处理它的答案。这是一个为 htaccess 文件做重写规则的。
RewriteRule ^([\s\S]*)$ index.php?rt= [L,B,QSA]
[更新]
已添加到配置中但仍无法正常工作
$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。我遇到的问题是阿拉伯字符的路由,我被重定向到 "Object not found" 页面
$route['cat/(:any)/(:any)'] = 'cat/index//';
$route['tour/(:any)/(:any)'] = 'tour/index//';
$route['sub_category/(:any)/(:any)'] = 'sub_category/index//';
$route['default_controller'] = "home";
$route['404_override'] = '';
$route['order'] = 'order/index/';
$route[urlencode('البومات-الصور')] = 'gallery/index/'; //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'] 它工作正常。
我在没有编码的情况下使用了相同的路由,但我得到了相同的错误"object not found! The requested URL was not found on this server."
如何解决这个问题?
所有这些说明之后,归结为您的服务器如何处理字符编码。
这是来自另一个类似的 Stack Overflow 问题的
RewriteRule ^([\s\S]*)$ index.php?rt= [L,B,QSA]