q770787217
V2EX  ›  问与答

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

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

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

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

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

    至于准确率,目前还没有看到有网站能够百分百识别用户语言跳转的,当然你可以基于 ip,cookies,分析用户语言跳转也是可以的。
    goodbest
        13
    goodbest  
       Apr 20, 2018 via iPhone
    再给个方法,通过 geoip 判断…
    misaka19000
        14
    misaka19000  
       Apr 20, 2018 via Android
    自己开发一个浏览器,强制用户使用自己开发的浏览器
    LoliconInside
        15
    LoliconInside  
       Apr 20, 2018 via Android
    通过 WebRTC 或许可以尝试获取 OS Language,不过我没试过,有哪位大牛可以尝试一下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5194 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 1601ms · UTC 05:52 · PVG 13:52 · LAX 22:52 · JFK 01:52
    ♥ Do have faith in what you're doing.