nginx_非标准端口_同端口_http_自动跳转_https
转载注明来源: 本文链接 来自osnosn的博客,写于 2021-02-05.
参考
- 【Nginx实现同一端口HTTP跳转HTTPS】
- 【解决nginx同端口强制跳转https配置ssl证书问题】
背景
如果网站架设在标准端口。可以通过设置 http 强制跳转到 https。即,从80口跳转到443口。完成加密网站的跳转。
把 https 的网站设置在非标准端口。访问的时候需要带上端口号。
总是因为忘了打上 https://
前缀导致访问失败。
希望在没打https://
前缀时,都能正常访问。
文档
- 【error_page】
- 【host】【server_port】【request_uri】
相同端口 http 跳 https
默认497
错误,是返回400 Bad Request: The plain HTTP request was sent to HTTPS port
可以修改这个错误处理。 在 server { .. }
中加入一行。
-
error_page 497 https://$host$request_uri;
默认用302,临时重定向 -
error_page 497 =301 https://$host$request_uri;
永久重定向 -
error_page 497 =307 https://$host$request_uri;
临时重定向,不改变请求的方法(如post还是post)
如果重定向后,没有带上正确的端口号,则显式的加上端口号 $server_port
,
- 如
error_page 497 https://$host:$server_port$request_uri;
还有一种写法,
error_page 497 https://$host:$server_port$uri$is_args$args;
转载注明来源: 本文链接 来自osnosn的博客.