Nginx 设置HTTP 301重定向到HTTPS

warning: 这篇文章距离上次修改已过1582天,其中的内容可能已经有所变动。

前几天一直在折腾网站的HTTPS,毕竟HTTP容易被劫持。

但是,一般输入域名,很少有人带上http://https://,而浏览器一般默认访问http站点。

所以需要设置HTTP 301重定向到HTTPS。

ps:当初百度HTTPS认证恶心到我了

在Nginx配置文件里添加以下任意一种就行:

#方法1,凡是80端口的都301
server {
    listen 80;
    server_name idzd.top www.idzd.top;
    return 301 https://www.idzd.top$request_uri;
}

##其他的同时监听80、443端口的配置(比如宝塔面板)
server
{
    listen 80;
    listen 443 ssl http2; 
    server_name idzd.top www.idzd.top;    
    
    #方法2,判断443端口
    if ($server_port !~ 443){ return 301 https://www.idzd.top$request_uri;}
    #方法3,判断80端口
    if ($server_port = 80 ) {return 301 https://www.idzd.top$request_uri; }    
    #方法4,判断协议
    if ($scheme = http ) {return 301 https://www.idzd.top$request_uri; }   
    #方法5,判断ssl附加数据
    if ($ssl_protocol = "") { return 301 https://www.idzd.top$request_uri; }
    #方法6,判断域名(需要和其他方法搭配)
    if ($host != 'www.idzd.top') {return 301 https://www.idzd.top$request_uri; }

    #部分配置省略,请勿照搬!
}
评论已关闭