Nginx配置http强制跳转https

2020-11-02  乐帮网

nginx

使用网站的http访问时我会把它转到我们https站点下。在Nginx中怎么配置呢?总结一下网上搜集的方案
(1)rewrite 方法
这是最常用的实现方法, 利用Nginx的rewrite功能将所有 http 请求重定向到 https。同时支持多域名。配置如下:

server {
    listen 80;
    server_name lebang2020.cn www.lebang2020.cn coffee.lebang2020.cn vn.lebang2020.cn ph.lebang2020.cn;
    return 301 https://$http_host$request_uri;
}

(2)497 状态码
利用了独特的状态码完成跳转,在80端口没有指定返回时,会自动返回497状态,示例如下:

server {
    listen 80;
    server_name lebang2020.cn www.lebang2020.cn coffee.lebang2020.cn vn.lebang2020.cn ph.lebang2020.cn;
    error_page 497  https://$http_host$request_uri;
}

(3)使用页面跳转
就是利用80端口返回一个html,利用html中的内容来实现跳转,很好的一个例子,是百度,当我们使用 http://baidu.com 访问时会发现直接返回一个静态页面,内容如下:

<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>

从而自动跳转到了http://www.baidu.com/
同理我们也可以把跳转地址改成https的地址,此方法存在局限性,例如我访问:http://baidu.com/web/a.html ,刚会出现问题,它只能匹配baidu.com这样的地址,或者还得后台动态返回一个拼凑的url地址,并不是固定的地址。

综上所述还是推荐第一种方法。

Nginx系列目录:安装配置教程

公众号二维码

关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力