全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 2358|回复: 9

求教万能的MJJ,网站如何按照区域的IP访问者跳转?

[复制链接]
发表于 2017-9-19 02:57:33 | 显示全部楼层 |阅读模式
求教万能的MJJ,网站如何按照区域的IP访问者跳转到不同语言的站点页面?

举个栗子:

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

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


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

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

发表于 2017-9-19 03:48:55 | 显示全部楼层
  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:30 | 显示全部楼层
hlx98007 发表于 2017-9-19 03:48
自己多写几个else if就行了。

这个原理是IP怎么识别的?
发表于 2017-9-19 10:03:34 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2017-9-19 11:41:23 | 显示全部楼层
宁静致远 发表于 2017-9-19 04:17
这个原理是IP怎么识别的?

自己查geoip_country_code_by_name的文档
发表于 2017-9-19 11:44:00 | 显示全部楼层
检测浏览器语言,跳
发表于 2017-9-19 11:57:36 | 显示全部楼层
参考,将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:11 | 显示全部楼层
bluehut 发表于 2017-9-19 11:57
参考,将echo换成跳就行了

基友这个是根据浏览器跳吗?
发表于 2017-9-20 08:40:45 | 显示全部楼层
根据浏览器语言,跳。直接用就行了
<?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:08 | 显示全部楼层
bluehut 发表于 2017-9-20 08:40
根据浏览器语言,跳。直接用就行了

在index.php设置一次就可以了吧?还是其余的分页面也要设置这样的引用?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-16 17:55 , Processed in 0.061935 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表