nginx配置http强制跳转https
很多网站虽然支持 https, 但是直接在浏览器地址栏输入网址后, 默认仍是以 http 协议去访问的, http 强制跳转 https 的需求应运而生, 以下介绍三种实现的方式
rewrite 方法
这是最常用的实现方法, 将所有 http 请求通过 rewrite 重定向到 https 即可
1 | server { |
497 状态码
error code 497: normal request was sent to HTTPS
在一个站点只允许 https 访问时, 如果使用 http 访问会报出497错误码
利用497状态码重定向到 https
1 | server { |
index.html 刷新网页
上面两种方法均会耗费服务器资源, 我们使用 curl 来看下百度是如何实现的 baidu.com 向 www.baidu.com 的跳转
1 | $ curl baidu.com -vv |
可以看到百度很巧妙的利用meta的刷新作用,将baidu.com跳转到www.baidu.com
同理, 我们也可以用这个特性来实现http向https的跳转
1 | # index.html |
1 | server { |