2011-05-18 135 views
0

问:我有一个多语言网站。在通过检查基本网址自动切换语言的地方,我们假设www.myapp.fr(用于法语)和www.myapp.es(用于西班牙语)。我使用一个辅助函数相应地执行$ this-> config-> set_item('base_url',$ domain)。我的问题是,我应该在哪里放置助手功能,最好的范围,这样用户不会被困在看到法国网站的地方,www.domain.es错误的网址? MY_Controller构造函数?Codeigniter,基于域的语言切换(base_url切换)最佳实践是什么?

(*)通常,peolpe为多语言网站提供一个域名。在我的情况下,我有两个域名指向它的同一主机。根据用户的请求,我做了开关! 我正在重写一个这样做的网站,并且工作正常。但我记得有几个问题,因为base_url没有正确切换,并且在域ES(示例)中以FR语言进行导航的用户。那段时间,我没有在每个控制器上都有一个帮手,没有DRY的好习惯,所以我想这就是问题所在。但90%它工作正常!

任何提示的赞赏; d

非常感谢

回答

1

不要设置BASE_URL自己。

CI 2.0以上,你不需要设置base_url。

您可以使用此代码来设置BASE_URL

$config['base_url'] = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 'https://' : 'http://' . $_SERVER['HTTP_HOST']; 

现在,你是从BASE_URL免费。您可以根据域名确定要使用的语言。