NGINX 如何强制 https 301 跳转到 https - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ErnieSauce
V2EX    NGINX

NGINX 如何强制 https 301 跳转到 https

  •  
  •   ErnieSauce 2016-10-20 18:18:13 +08:00 8858 次点击
    这是一个创建于 3276 天前的主题,其中的信息可能已经有所发展或是发生改变。
    使用 https 后网站上转载的优酷视频显示空白
    所以想取消掉 https
    但是百度已经收录了 https
    现在想把 https 强制跳转到 http
    百度了很多方法都重定向循环了
    19 条回复    2016-10-22 00:00:42 +08:00
    qgy18
        1
    qgy18  
       2016-10-20 18:31:29 +08:00 via iPhone
    你之前用 301 永久重定向把 http 跳往 https 了吧。
    浏览器会记住 301 跳转,所以你再从 https 跳到 http 就循环了。
    试试在 https 跳往 http 时加一个参数。
    ErnieSauce
        2
    ErnieSauce  
    OP
       2016-10-20 19:09:30 +08:00
    @qgy18 浏览器记住的跳转清楚 cookie 后还会存在吗?我需要怎么修改
    ansheng
        3
    ansheng  
       2016-10-20 19:13:21 +08:00
    晒下我的配置文件把,希望对你有帮助:
    ```nginx
    server {
    server_name blog.ansheng.me;
    listen 80;
    listen 443 ssl;

    set $rewriterule https;

    if ($scheme = https) {
    set $rewriterule "${rewriterule}7";
    }

    if ($host ~* ^blog.ansheng.me) {
    set $rewriterule "${rewriterule}8";
    }
    if ($rewriterule != "https78") {
    return 301 https://blog.ansheng.me$request_uri;
    break;
    }

    ssl_certificate /.../xxx.crt;
    ssl_certificate_key /.../xxx.key;
    ssl_trusted_certificate /.../xxx.crt;

    ......
    }
    ```
    xiujie_JIANG
        4
    xiujie_JIANG  
       2016-10-20 19:24:59 +08:00
    rewrite ^ https://$server_name$request_uri? permanent;
    JJaicmkmy
        5
    JJaicmkmy  
       2016-10-20 20:08:56 +08:00 via iPhone
    首先,你标题写错了。
    第二,优酷是可以用 HTTPS 引用的。你可以用 https 打开优酷,然后把播放器的地址复制下来。
    rainfox
        6
    rainfox  
       2016-10-20 20:32:42 +08:00
    @JJaicmkmy , HTTPS 打不开优酷的吧!但是优酷确实是可以 https 引用的。地址: http://cloud.youku.com/tools/
    ErnieSauce
        7
    ErnieSauce  
    OP
       2016-10-20 22:22:19 +08:00
    @JJaicmkmy https 也不支持手机端播放 所以不纠结这个问题 我想解决跳转的问题 大神会吗 *- -
    ErnieSauce
        8
    ErnieSauce  
    OP
       2016-10-20 22:23:02 +08:00
    @ansheng 你这个是从 http 跳转到 https 吧? -
    rainfox
        9
    rainfox  
       2016-10-20 22:26:10 +08:00
    @ErnieSauce 然而,优酷的 https 那个其实是支持手机播放的,亲测。
    MaiCong
        10
    MaiCong  
       2016-10-20 22:34:54 +08:00
    if ($ssl_protocol = '') {
       return 301 https://$server_name$request_uri;
    }
    error_page 497 https://$server_name$request_uri;
    ErnieSauce
        11
    ErnieSauce  
    OP
       2016-10-20 22:40:37 +08:00
    @rainfox 确实可以 你有用过 wordress 的视频插件吗
    xiaoz
        12
    xiaoz  
       2016-10-20 22:52:49 +08:00 via iPhone
    ansheng
        13
    ansheng  
       2016-10-20 23:12:59 +08:00
    @ErnieSauce 是的……
    happywowwow
        14
    happywowwow  
       2016-10-20 23:17:31 +08:00
    if ($server_port = "80") {
    return 301 https://$host$request_uri;
    }

    最近写的. 因为没写 server_name 所以用了$host
    jqw1992
        15
    jqw1992  
       2016-10-21 00:51:42 +08:00
    server {
    listen 80;
    server_name XXXX.com www.XXXX.com;
    rewrite ^/(.*) https://www.laba.me/$1 permanent;
    }
    msg7086
        16
    msg7086  
       2016-10-21 00:58:28 +08:00
    @happywowwow
    @jqw1992
    @MaiCong
    @xiujie_JIANG
    看题要审题……?

    @ErnieSauce
    一定要重写成 http 的话,随便加一个无用参数应该就可以了。
    清 Cookie 是不会清访问缓存的。
    ErnieSauce
        17
    ErnieSauce  
    OP
       2016-10-21 08:20:55 +08:00
    @msg7086 终于看到了一个明白人 - - 随便加一个参数是指?
    我在使用 if ($server_port = "80") {
    return 301 https://$host$request_uri;
    }
    这个的时候 只有首页会自动跳转到 https 请问该如何设置
    w99wen
        18
    w99wen  
       2016-10-21 10:38:05 +08:00
    server {
    listen *:80;
    server_name git.w99wen.tk;
    server_tokens off; ## Don't show the nginx version number, a security best practice
    return 301 https://git.w99wen.tk:443$request_uri;
    access_log /var/log/gitlab/nginx/gitlab_access.log gitlab_access;
    error_log /var/log/gitlab/nginx/gitlab_error.log;
    }
    msg7086
        19
    msg7086  
       2016-10-22 00:00:42 +08:00
    @ErnieSauce 一来别用 if ,二来调试的时候先用 302 做,没问题了再上 301 。
    做 https 跳转到 http ,试试
    rewrite ^(.*)$ http://example.com$1?http;
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     869 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 21:21 PVG 05:21 LAX 14:21 JFK 17:21
    Do have faith in what you're doing.
    ubao 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