V2EX 是怎样做 http 转 https 的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iugo
V2EX    V2EX

V2EX 是怎样做 http 转 https 的?

  •  
  •   iugo 2014-11-18 17:56:16 +08:00 4183 次点击
    这是一个创建于 4057 天前的主题,其中的信息可能已经有所发展或是发生改变。
    http://blog.csdn.net/wzy_1988/article/details/8549290 这里看到大概有三种方法:

    1. rewrite
    2. 497 状态码 (似乎不太友好)
    3. 进入页面后跳转 (似乎这样相当于加载了两次)

    想知道 V2EX 是怎样做的?

    另:
    页面中还有 <link rel="canonical" href="http://www.v2ex.com/" /> 这个需要改成 https 吗? 我的 Ghost 也是这样, 强制了 https, 但 canonical 还是 http. 有必要改吗?
    第 1 条附言    2014-11-18 18:35:14 +08:00
    看来 301 转向是最佳方案. 谢谢大家的帮助. Nginx 的设置方法在楼下.
    14 条回复    2014-11-19 10:20:28 +08:00
    leassy
        1
    leassy  
       2014-11-18 17:58:47 +08:00
    80端口直接301到443端口即可
    我一直这样做
    tabris17
        2
    tabris17  
       2014-11-18 17:59:04 +08:00
    永久重定向
    iugo
        3
    iugo  
    OP
       2014-11-18 18:09:58 +08:00
    @leassy
    @tabris17

    具体该怎么做?

    我是这样的:

    server {
    listen 80;
    server_name example.org;
    return 301 https://example.org$request_uri;
    }

    可是之后出现了一个问题, 百度站内搜索失效. 之前还是警告页面包含非加密信息, 后来就直接失效了, 虽然也不会有提醒. 注: znsv.baidu.com 无法使用 https.
    tabris17
        4
    tabris17  
       2014-11-18 18:13:40 +08:00
    原链接失效搜索引擎当然也失效了。

    包含非加密信息是因为你引用图片脚本CSS使用了绝对地址吧
    iugo
        5
    iugo  
    OP
       2014-11-18 18:13:49 +08:00
    知道问题在哪儿了. 是 Chrome 屏蔽了该不安全脚本.
    iugo
        6
    iugo  
    OP
       2014-11-18 18:15:59 +08:00
    @tabris17 我引用的是百度

    <script type="text/Javascript">document.write(unescape('%3Cdiv id="bdcs"%3E%3C/div%3E%3Cscript charset="utf-8" src="http://znsv.baidu.com/customer_search/api/js?sid=4316253844246803945') + '&plate_url=' + (encodeURIComponent(window.location.href)) + '&t=' + (Math.ceil(new Date()/3600000)) + unescape('"%3E%3C/script%3E'));</script>

    这样一行代码.

    刚开始测试的时候还正常显示, 后来被 Chrome 屏蔽了, 选择加载不安全代码后就正常了.

    虽然听说百度开始支持 https 了, 但 znsv.baidu.com 还是不支持.
    kslr
        7
    kslr  
       2014-11-18 18:40:51 +08:00
    497
    Showfom
        8
    Showfom  
    PRO
       2014-11-18 18:40:58 +08:00 via iPhone
    v2ex 从来没有强制 https 啊 做跳转是因为你在自己的设置里设置了 那当然应该是用 python 判断咯
    cokebar
        9
    cokebar  
       2014-11-18 19:35:48 +08:00
    页面引用时候可以用省略了协议的url:
    //www.example.com/index.html
    这样根据情况浏览器会相应处理
    xoxo
        10
    xoxo  
       2014-11-18 19:39:09 +08:00
    将80重定向到443同时
    输出如下http header
    Strict-Transport-Security:max-age=31536000; includeSubDomains
    leassy
        11
    leassy  
       2014-11-19 08:57:10 +08:00
    @iugo
    server {
    listen 80;
    server_name xxx.com;
    rewrite ^/(.*)$ http://www.xxx.com/$1 permanent;
    leassy
        12
    leassy  
       2014-11-19 08:58:03 +08:00
    @iugo 刚才少了个括号
    server {
    listen 80;
    server_name w9z.net;
    rewrite ^/(.*)$ http://www.w9z.net/$1 permanent;
    }
    iugo
        13
    iugo  
    OP
       2014-11-19 10:19:23 +08:00
    @kslr 497 有什么好处呢?
    iugo
        14
    iugo  
    OP
       2014-11-19 10:20:28 +08:00
    @Showfom 嗯. 我在 Chrome 和 Firefox 看到是自动跳 https. 刚才又在 IE 11 中测试, 没有跳, 依旧是 http.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2664 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 07:05 PVG 15:05 LAX 23:05 JFK 02:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86