2012-04-25 74 views
0

由于我正在向应用程序添加多语言支持,并且在我的routes.php中遇到了某些路由已停止工作的问题。在routes.php中使用多种语言

似乎任何一个段的作品,任何有两个或更多的东西没有。

任何帮助如何解决这个问题将不胜感激。

routes.php文件摘录:

// URI like '/en/about' -> use controller 'about' 
$route['^(en|br)/(.+)$'] = "$2"; 
$route['dashboard'] = 'dashboard'; //THIS WORKS 
$route['profile'] = 'profile/profile_list'; 
$route['profile_list/page'] = 'profile/profile_list'; //THIS DOESN'T 
$route['profile_list/page/(:any)'] = 'profile/profile_list/$1'; 
$route['profile/update'] = 'profile/update'; 
$route['profile/(:any)'] = 'profile/$1'; 
$route['default_controller'] = 'landing'; 
// '/en', '/de', '/fr' and '/nl' URIs -> use default controller 
$route['^(en|br)$'] = $route['default_controller']; 
+0

So/en/profile_list/page和/ profile_list/page都不起作用? – minboost 2012-04-25 06:15:26

+0

是的,它必须处理url网段的数量。我想出了一个解决方案,我将发布。 – jsuissa 2012-04-25 14:39:09

回答

1

想通了这个问题的答案与信息:Codeigniter forum

只是需要加入这个变量,其中包括对任意两个字母的语言代码我的URL段用途:

$prepended_lang = "(?:[a-zA-Z]{2}/)?"; 

然后修改相应的路径:

$route[$prepended_lang.'logout'] = 'login/logout';