【问题标题】:Codeigniter, language switch based on domain (base_url switch) whats the best practice?Codeigniter,基于域的语言切换(base_url 切换)什么是最佳实践?
【发布时间】:2011-05-18 10:32:29
【问题描述】:

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

(*) 通常每个人都有一个多语言站点的域名。就我而言,我有两个指向它的域名的主机。根据用户请求uri,我做切换! 我正在重写一个这样做的网站,并且工作正常。但我记得有一些问题,因为 base_url 没有正确切换,并且用户在域 ES 中使用语言 FR 导航(示例)。那个时候,我在每个控制器上都没有助手,没有 DRY 的好习惯,所以我想,这就是问题所在。但 90% 的时候效果很好!

感谢任何提示;D

非常感谢

【问题讨论】:

    标签: codeigniter controller multilingual base-url


    【解决方案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。你可以有一个钩子来根据域名确定使用什么语言。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-26
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多