全球主机交流论坛

标题: 求教万能的MJJ,网站如何按照区域的IP访问者跳转? [打印本页]

作者: 宁静致远    时间: 2017-9-19 02:57
标题: 求教万能的MJJ,网站如何按照区域的IP访问者跳转?
求教万能的MJJ,网站如何按照区域的IP访问者跳转到不同语言的站点页面?

举个栗子:

欧美用户访问www.xxx.com则自动跳转到http://www.xxx.com/en

日本用户访问www.xxx.com则自动跳转到http://www.xxx.com/jp


N年前弄过按带宽线路自动跳转联通、电信什么的,感觉原理应该差不多,时隔多年已老傻目前想不出来,不知道用啥才能达到以上效果?

用一个页面代码跳转?在小鸡设置个什么插件或者啥的用线路识别跳转?头大


作者: hlx98007    时间: 2017-9-19 03:48
  1. <?php
  2. if (geoip_country_code_by_name($_SERVER['REMOTE_ADDR']) == 'JP') {
  3.     header("location:http://www.google.co.jp");
  4. }
  5. else {
  6.     header("location:http://www.google.com");
  7. }
  8. ?>
复制代码


自己多写几个else if就行了。
作者: 宁静致远    时间: 2017-9-19 04:17
hlx98007 发表于 2017-9-19 03:48
自己多写几个else if就行了。

这个原理是IP怎么识别的?
作者: Meeleem    时间: 2017-9-19 10:03
提示: 作者被禁止或删除 内容自动屏蔽
作者: hlx98007    时间: 2017-9-19 11:41
宁静致远 发表于 2017-9-19 04:17
这个原理是IP怎么识别的?

自己查geoip_country_code_by_name的文档
作者: 倾城翻翻    时间: 2017-9-19 11:44
检测浏览器语言,跳
作者: bluehut    时间: 2017-9-19 11:57
参考,将echo换成跳就行了
<?php
        $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,这样只判断最优先的语言。如果取前5位,可能出现en,zh的情况,影响判断。
        if (preg_match("/zh-c/i", $lang))
        echo "简体中文";
        else if (preg_match("/zh/i", $lang))
        echo "繁体中文";
        else if (preg_match("/en/i", $lang))
        echo "English";
        else if (preg_match("/fr/i", $lang))
        echo "French";
        else if (preg_match("/de/i", $lang))
        echo "German";
        else if (preg_match("/jp/i", $lang))
        echo "Japanese";
        else if (preg_match("/ko/i", $lang))
        echo "Korean";
        else if (preg_match("/es/i", $lang))
        echo "Spanish";
        else if (preg_match("/sv/i", $lang))
        echo "Swedish";
        else echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];
?>
作者: 宁静致远    时间: 2017-9-19 19:55
bluehut 发表于 2017-9-19 11:57
参考,将echo换成跳就行了

基友这个是根据浏览器跳吗?
作者: bluehut    时间: 2017-9-20 08:40
根据浏览器语言,跳。直接用就行了
<?php
        $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,这样只判断最

优先的语言。


        if (preg_match("/zh-c/i", $lang))
        header("location:http://www.xxx.com/cn");
        else if (preg_match("/jp/i", $lang))
        header("location:http://www.xxx.com/jp");
        else header("location:http://www.xxx.com/en");

?>
作者: 宁静致远    时间: 2017-9-20 20:12
bluehut 发表于 2017-9-20 08:40
根据浏览器语言,跳。直接用就行了

在index.php设置一次就可以了吧?还是其余的分页面也要设置这样的引用?




欢迎光临 全球主机交流论坛 (https://d.168530.xyz/) Powered by Discuz! X3.4