2015-07-20 220 views
0

我有一个内置在Codeigniter中的多语言网站。当前的语言被添加到所有的URL。例如site.com/en/basic/user/subscription其中“en”定义了语言。 在routes.php文件我有以下几点:Codeigniter路由到不同的控制器

$route['(\w{2})/(.*)'] = '$2'; 
$route['(\w{2})'] = $route['default_controller']; 

现在我想将所有来电:PRO /用户/ *基本/用户/ *。 Pro和Basic都是文件夹,用户就是控制器。我在routes.php中试过这个,在上面的行下面。

$route['pro/user/(.*)'] = 'basic/user/$1'; 

我只得到了404。我在添加语言部分时也尝试了不同的版本,但无法使其工作。尝试使用(:任何)也。

+1

路由将按照它们定义的顺序运行。较高的路线总是优先于较低的路线。确保没有任何其他路线高于404. – TigerTiger

+0

这里是codeigniter uri路由用户指南http://www.codeigniter.com/user_guide/general/routing.html – user4419336

回答

0

我找到了一个工作解决方案。我把这个规则放在语言部分之上。

$route['(.*)/pro/user/(.*)'] = 'basic/user/$2';