Codeigniter,基于域(base_url开关)的语言切换最佳做法是什么?

时间:2011-05-18 10:32:29

标签: codeigniter controller multilingual base-url

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

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

感谢任何提示; D

非常感谢

1 个答案:

答案 0 :(得分: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。您可以使用钩子来确定基于域名使用的语言。