V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
ErnieSauce
V2EX  ›  NGINX

NGINX 如何强制 https 301 跳转到 https

  •  
  •   ErnieSauce · Oct 20, 2016 · 9244 views
    This topic created in 3480 days ago, the information mentioned may be changed or developed.
    使用 https 后网站上转载的优酷视频显示空白
    所以想取消掉 https
    但是百度已经收录了 https
    现在想把 https 强制跳转到 http
    百度了很多方法都重定向循环了
    19 replies    2016-10-22 00:00:42 +08:00
    qgy18
        1
    qgy18  
       Oct 20, 2016 via iPhone
    你之前用 301 永久重定向把 http 跳往 https 了吧。
    浏览器会记住 301 跳转,所以你再从 https 跳到 http 就循环了。
    试试在 https 跳往 http 时加一个参数。
    ErnieSauce
        2
    ErnieSauce  
    OP
       Oct 20, 2016
    @qgy18 浏览器记住的跳转清楚 cookie 后还会存在吗?我需要怎么修改
    ansheng
        3
    ansheng  
       Oct 20, 2016
    晒下我的配置文件把,希望对你有帮助:
    ```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  
       Oct 20, 2016
    rewrite ^ https://$server_name$request_uri? permanent;
    JJaicmkmy
        5
    JJaicmkmy  
       Oct 20, 2016 via iPhone
    首先,你标题写错了。
    第二,优酷是可以用 HTTPS 引用的。你可以用 https 打开优酷,然后把播放器的地址复制下来。
    rainfox
        6
    rainfox  
       Oct 20, 2016
    @JJaicmkmy , HTTPS 打不开优酷的吧!但是优酷确实是可以 https 引用的。地址: http://cloud.youku.com/tools/
    ErnieSauce
        7
    ErnieSauce  
    OP
       Oct 20, 2016
    @JJaicmkmy https 也不支持手机端播放 所以不纠结这个问题 我想解决跳转的问题 大神会吗 *- -
    ErnieSauce
        8
    ErnieSauce  
    OP
       Oct 20, 2016
    @ansheng 你这个是从 http 跳转到 https 吧? -
    rainfox
        9
    rainfox  
       Oct 20, 2016
    @ErnieSauce 然而,优酷的 https 那个其实是支持手机播放的,亲测。
    MaiCong
        10
    MaiCong  
       Oct 20, 2016
    if ($ssl_protocol = '') {
       return 301 https://$server_name$request_uri;
    }
    error_page 497 https://$server_name$request_uri;
    ErnieSauce
        11
    ErnieSauce  
    OP
       Oct 20, 2016
    @rainfox 确实可以 你有用过 wordress 的视频插件吗
    xiaoz
        12
    xiaoz  
       Oct 20, 2016 via iPhone
    ansheng
        13
    ansheng  
       Oct 20, 2016
    @ErnieSauce 是的……
    happywowwow
        14
    happywowwow  
       Oct 20, 2016
    if ($server_port = "80") {
    return 301 https://$host$request_uri;
    }

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

    @ErnieSauce
    一定要重写成 http 的话,随便加一个无用参数应该就可以了。
    清 Cookie 是不会清访问缓存的。
    ErnieSauce
        17
    ErnieSauce  
    OP
       Oct 21, 2016
    @msg7086 终于看到了一个明白人 - - 随便加一个参数是指?
    我在使用 if ($server_port = "80") {
    return 301 https://$host$request_uri;
    }
    这个的时候 只有首页会自动跳转到 https 请问该如何设置
    w99wen
        18
    w99wen  
       Oct 21, 2016
    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  
       Oct 22, 2016
    @ErnieSauce 一来别用 if ,二来调试的时候先用 302 做,没问题了再上 301 。
    做 https 跳转到 http ,试试
    rewrite ^(.*)$ http://example.com$1?http;
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1739 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 00:01 · PVG 08:01 · LAX 17:01 · JFK 20:01
    ♥ Do have faith in what you're doing.