V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
q770787217
V2EX  ›  问与答

Apache2 或 Nginx 如何根据客户系统语言进行跳转?

  •  
  •   q770787217 · 2018-04-19 16:42:08 +08:00 · 2672 次点击
    这是一个创建于 2193 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Apache2 或 Nginx 如何根据客户系统语言进行跳转?
    注意 是系统语言而不是浏览器语言
    15 条回复    2018-04-20 09:18:37 +08:00
    night98
        1
    night98  
       2018-04-19 18:04:55 +08:00 via Android
    浏览器语言不是从系统语言获取到的么,火狐可以自己设定语言,win10 可以关闭网站获取语言列表的功能,具体实现不是很清楚,坐等大佬解答
    Aliencn
        2
    Aliencn  
       2018-04-19 18:13:40 +08:00
    既然你想通过 http 服务器这一层来做跳转的话,这取决于浏览器发送给 http 服务器的 Accept-Language 值
    如果用户电脑和浏览器的语言不一致,那你让用户自己把浏览器的 Accept-Language 值改一下就完了,哈哈哈
    boboliu
        3
    boboliu  
       2018-04-19 18:36:34 +08:00 via Android
    你一个 webserver 怎么知道客户端的系统语言…老哥您是 pm 出身吧(大雾
    ThirdFlame
        4
    ThirdFlame  
       2018-04-19 19:56:04 +08:00
    任何中间件都无法感知到系统语言。
    仅能够通过浏览器发来的 Accept-Language header 知道浏览器能够接受什么语言。
    至于这个语言是不是一定和系统语言一直,可以准确的告诉你 不是。是可以任意修改的。
    daigouspy
        5
    daigouspy  
       2018-04-19 19:59:09 +08:00 via Android
    @boboliu 很明显现在的人对桌面系统没有任何了解啦,只会前端和 web server 了。
    q770787217
        6
    q770787217  
    OP
       2018-04-19 23:26:49 +08:00
    这么多热心回复,我是技术小白 不知道难不难实现感应到系统语言;
    Accept-Language 可以任意修改 我不想通过浏览器语言实现。
    有什么办法 可以根据浏览器语言和系统语言一致时 才进行跳转?
    ThirdFlame
        7
    ThirdFlame  
       2018-04-19 23:34:01 +08:00
    @q770787217 HTTP 里面携带语言信息的只有 Accept-Language
    你都无从得到客户端 系统语言 怎么可能进行判断呢。

    楼上的那么多都是在告诉你 没有可能”感应到系统语言” 。
    falcon05
        8
    falcon05  
       2018-04-19 23:34:22 +08:00 via iPhone
    不能
    msg7086
        9
    msg7086  
       2018-04-19 23:48:22 +08:00
    可以用 Flash 或者 Java 小程序,在浏览器上运行以后得到语言数据,再发回服务器端,纪录下,再跳转。
    CloudnuY
        10
    CloudnuY  
       2018-04-20 01:08:38 +08:00
    用什么不都得走 HTTP 协议吗,浏览器发送的信息只有这么点儿,除非不用浏览器技术
    tinkerer
        11
    tinkerer  
       2018-04-20 01:11:40 +08:00
    @q770787217 不能...别想了
    night98
        12
    night98  
       2018-04-20 02:11:09 +08:00 via Android
    https://segmentfault.com/q/1010000002468965

    https://blog.csdn.net/lvjin110/article/details/37663067

    各个浏览器实现好像都不一样,可以尝试使用 js 获取的方式,然后带参访问尝试相关跳转方案。

    至于准确率,目前还没有看到有网站能够百分百识别用户语言跳转的,当然你可以基于 ip,cookies,分析用户语言跳转也是可以的。
    goodbest
        13
    goodbest  
       2018-04-20 07:20:38 +08:00 via iPhone
    再给个方法,通过 geoip 判断…
    misaka19000
        14
    misaka19000  
       2018-04-20 08:40:21 +08:00 via Android
    自己开发一个浏览器,强制用户使用自己开发的浏览器
    LoliconInside
        15
    LoliconInside  
       2018-04-20 09:18:37 +08:00 via Android
    通过 WebRTC 或许可以尝试获取 OS Language,不过我没试过,有哪位大牛可以尝试一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2871 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 09:13 · PVG 17:13 · LAX 02:13 · JFK 05:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.