特别说明:网络请求状态码 301 与 302区别

状态码:301 永久重定向

状态码:302 临时重定向

总结重定向时间久用301,临时重定向用就302。纠结就用302。

想从 urlA -> urlB ,那就使用重定向

location / {
    return 301 https://www.ff11sf.com;
}

案例演示

server{
    listen 80;
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    listen [::]:80;
    
    server_name 75game.ff11sf.com;

    #SSL-START
    ssl_certificate    /home/autossl/tmp/75game.ff11sf.com.pem;
    ssl_certificate_key    /home/autossl/tmp/75game.ff11sf.com.key;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;
    #SSL-END

    #HTTP_TO_HTTPS_START
    # if ($server_port !~ 443){
    #     rewrite ^(/.*)$ https://$host$1 permanent;
    # }
    # 端口是80改443
    if ($server_port = 80) {
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    
    location / {
        alias /home/myoutput/75serverInfo/docs/;
        index index.html;
    }
}

追加这一段强制SSL

Nginx 无法在同一个端口上,同时配置 listen 8860;(明文 HTTP 监听)与 listen 8860 ssl;(SSL 加密监听)。 这并不是 TCP 端口硬件层面绑定了固定协议,而是 Nginx 自身监听机制的限制。

举个例子:如果 8860 端口配置为明文 HTTP 监听,就无法在该端口提供 HTTPS 服务;反过来,若 8860 端口开启了 ssl 参数做 HTTPS 监听,该端口就不再接受明文 HTTP 请求。 但总会有用户直接使用 http://域名:8860 明文访问这个 HTTPS 端口,默认情况下用户页面会直接展示 Bad Request。 只需要在 server {} 块顶层,追加下面这行配置,就能捕获该异常并自动跳转至 HTTPS:

error_page 497 =301 https://$host:$server_port$request_uri;

497 是 Nginx 的内部事件标记(并非对外返回给浏览器的 HTTP 状态码):代表客户端向已开启 SSL 监听的端口发送了明文 HTTP 请求。 默认发生该事件时,Nginx 对外返回 400 Bad Request。 error_page 497 =301 https://$host:$server_port$request_uri; 专门处理这个场景,捕获 497 内部事件,返回 301 永久重定向,让浏览器自动切换到 HTTPS 链接,避免直接抛出 Bad Request 错误页。

=301 为永久重定向,浏览器会缓存跳转记录,测试环境建议替换成 =302 临时重定向;

特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤

免责声明:
本站文章旨在总结学习互联网技术过程中的经验与见解。任何人不得将其用于违法或违规活动!所有违规内容均由个人自行承担,与作者无关。