在我的codeigniter webapp中,我正在使用多语言网站。默认和英文如下:
www.xxx.com (default)
www.xxx.com/en (english)
我有一个控制器,我想重新路由特定的电话,比如马铃薯和西红柿这样的蔬菜:
www.xxx.com/potato/param => www.xxx.com/vegie/param
www.xxx.com/tomato/param => www.xxx.com/vegie/param
到目前为止,我已经设法在我的route.php中使用默认语言url重新路由:
$route['potato/(.+)$'] = 'vegie/$1';
$route['tomato/(.+)$'] = 'vegie/$1';
但我不为英文网站工作。我确实喜欢这样,而且没有工作:
$route['en/potato/(.+)$'] = 'en/vegie/$1';
$route['en/tomato/(.+)$'] = 'en/vegie/$1';
任何人都可以帮助我吗?感谢。
答案 0 :(得分:0)
首先,创建新功能来管理英文版,例如:function vegie_en()
然后路由到它
$route['en/potato/(:any)'] = 'vegie_en/$1';
答案 1 :(得分:0)
我发现了这个问题。我在我的route.php中有这个,如果有前缀en /:
,它会错误地重新路由$route['en/(.+)$'] = '$1';
我把它移到了route.php的末尾,现在它工作得非常好。
答案 2 :(得分:0)
我的项目遇到了同样的问题。我通过删除' en'来修复它。并将2美元作为动态值。
所以在你的情况下,这将工作。请尝试下面给出的代码。
$route['en/potato/(.+)$'] = 'vegie/$2';
$route['en/tomato/(.+)$'] = 'vegie/$2';