在腾讯云上申请到了免费的SSL证书,于是开始了折腾网站切换到了https,这时如果在使用http访问,即出现HTTP 400错误,所以需要设置Nginx将http请求跳转到https。

一开始查到一些配置方案,比如这篇,但是方案一使用后出现400 Bad Request. The plain HTTP request was sent to HTTPS port,方案二太麻烦没试,方案三仅能跳转首页。

腾讯云的SSL配置教程和方案一一样也建议使用rewrite ^(.*) https://$host$1 permanent;,但是实际是在我这里400 Bad Request,事实上我的Nginx是1.10.3版,很可能已经不支持那个指令了。

经过我搜索试错,再第n次我成功了 我成功了 我成功了 ……. 其实也很简单的原理,下面开始教程咯 首先在配置文件里加入以下这段代码:

server {
listen 80;
#listen \[::\]:80; // IPv6监控相关,我选择关闭

server\_name www.grins.top;  //替换成你的域名

return 301 http://demo.blog.2sxs.net$request\_uri; //替换成你的域名
}

server {
// other server block
}

然后这样,再这样,这里这样 ok 访问http是不是就直接请求访问https了 。