【问题标题】:How to append language value from cookie to URL in codeigniter [duplicate]如何在codeigniter中将cookie中的语言值附加到URL [重复]
【发布时间】:2018-07-17 10:58:20
【问题描述】:

如果在浏览器中设置了 cookie,则获取 cookie 并附加到 URL

如果 cookie language=english

重定向到 https://example.com/en

如果 cookie language=deutch

重定向到

https://example.com/de

如果可能,所有Accept-Language

对于 cookie 的每个值

cookielanguage=/en/Accept-Language

重定向到他们的语言页面

查看

  <h5>Translate this page:</h5>
        <div class="lang-holder">
                          <a href="#" class="topbar-menu-toggle" data-toggle="button">

                             <img src="<?php echo base_url();?>assets/img/lang/<?php if ($this->input->cookie('language') != '') 
                            {
                               echo $this->input->cookie('language');
                            } 
                            else 
                            {
                            $language = $this->settings_lib->item('site.default_language');

                              echo $language;
                            } ?>.png">
                          </a>
                        </div>

<div id="topbar-dropmenu" class="animated animated-short slideInDown">
      <div class="topbar-menu row">

            <?php if ($handle = opendir('application/language/')) 
              {

                while (false !== ($entry = readdir($handle))) 
                {
                  if ($entry != "." && $entry != "..") 
                  { ;?>

                    <div class="col-xs-2 col-sm-1">
                      <a href="<?php echo base_url() ?>home/language/<?php echo $entry; ?>">
                        <img class="h30" src="<?php echo base_url();?>assets/img/lang/<?php echo $entry; ?>.png">
                        <span class="fs14 hidden-xs"><?php echo ucfirst($entry); ?></span>
                      </a>
                    </div>
                    <?php
                  }
                }

                closedir($handle);
              } ?>



      </div>

控制器

    public function language($lang = false)
{
    $folder = 'application/language/';
    $languagefiles = scandir($folder);
    if (in_array($lang, $languagefiles)) {
        $cookie = array(
            'name' => 'language',
            'value' => $lang,
            'expire' => '31536000',
        );

        $this->input->set_cookie($cookie);
    }
    redirect($this->input->server('HTTP_REFERER'));
}

【问题讨论】:

    标签: php codeigniter cookies


    【解决方案1】:

    使用这个概念:

    RewriteEngine on
    
    RewriteCond %{HTTP_COOKIE} ^lang=/en/en$ [NC]
    RewriteRule .* https://example.com/en [R=301,L]
    
    RewriteCond %{HTTP_COOKIE} ^lang=/en/ca$ [NC]
    RewriteRule .* https://example.com/ca [R=301,L]
    

    RewriteEngine on
    
    RewriteCond %{HTTP_COOKIE} ^lang=/en/(.*)$ [NC]
    RewriteRule .* https://example.com/%1 [R=301,L]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 2011-03-16
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多