如何根据浏览器语言重定向用户

5
  1. 我想根据浏览器语言重定向用户,我在这里找到了如何做到这一点,它可以正常工作,以下是代码(PHP):

    if(preg_match('/en-US/', $_SERVER['HTTP_USER_AGENT']))
        header("location:index.php");
    else
        header("location:http://cn.gearor.com");
    
  2. 问题是我只想重定向来自其他网站或首次访问我的网站的用户。这意味着我不希望用户阅读我的网站某些页面时,当他们返回到主页时,他们被重定向到其他页面。我还在我的网站上有一个链接,比如:英文或中文,当用户从中文页面点击英文时,他们将转到index.php并被重定向回中文页面,这使得用户无法访问英文页面。我该如何在PHP或JavaScript中解决这个问题?

2个回答

6
您可以设置一个会话变量,例如$_SESSION['lang'],并仅在未设置$_SESSION['lang']时应用上述代码。 我指的是:
if(!isset($_SESSION['lang'])){
  if(preg_match('/en-US/', $_SERVER['HTTP_USER_AGENT'])){
    $_SESSION['lang'] = 'en';
    header("location:index.php");
  }else{
    $_SESSION['lang'] = 'other';
    header("location:http://cn.gearor.com");
  }
}

谢谢Sinan,这正是我要找的。但是当我把你的代码放到我的网站上时,在header.php的第一行中出现了意外的'{'错误。我正在使用WordPress,在“<!DOCTYPE html ...”之前将代码放在我的主题的开头。我错过了什么吗? - Zack
@Zack 你确定要在你的WordPress网站的每个页面和文章上都这样做吗?如果是这样,请将其放在index.php中。当然,在<?php ?>标签内。 - InanisAtheos

-1

很难理解你的意思,如果你能再澄清一下就好了,但我认为你在问的是这个,Pastebin


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接