codeigniter 基于域的语言切换(base_url切换)-最佳实践是什么?

abithluo  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(138)

问:我有一个多语言站点,通过检查基本url自动切换语言,假设www.myapp.fr(对于法语)和www.myapp.es我使用一个helper函数来相应地执行$this->config->set_item('base_url', $domain)。我的问题是,我应该将helper函数放置在哪里,最好的作用域,这样用户就不会被困在看到法语站点的陷阱中,使用错误的url www.domain.es?MY_Controller构造函数?
(*)通常人们有一个多语言网站的域名。在我的情况下,我有相同的主机与两个域名指向它。根据用户请求的URI,我做切换!
我正在重新编写一个网站,它可以做到这一点,并且运行良好。但我记得有一些问题,因为base_url没有正确切换,用户在ES域中使用FR语言导航(示例)。在那段时间里,我没有在每个控制器上都有一个助手,没有DRY良好的实践,所以我猜这就是问题所在。但90%的情况下,它运行良好!

alen0pnh

alen0pnh1#

不要自己设置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中解放出来了。你可以有一个钩子来根据域名来决定使用什么语言。

相关问题