Nginx 设置HTTP 301重定向到HTTPS
warning:
这篇文章距离上次修改已过1854天,其中的内容可能已经有所变动。
前几天一直在折腾网站的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; }
#部分配置省略,请勿照搬!
}