需求
在访问 www.example.com/* 时,通过 Nginx 的配置将用户重定向至 example.com/*。由于网站支持https,需要同时实现以下跳转:
http://www.example.com/* -> http://example.com/*
https://www.example.com/* -> https://example.com/*
但是,根据网络找到的以下方法,无法在同时支持 http/https 的一个 server 配置内实现这个需求。
if ($host ~* www.example.com) {
rewrite ^/(.*)$ http://example.com/$1 permanent;
}
解决
利用 Nginx 的 $scheme 变量,解决此问题。
if ($host ~* www.example.com) {
rewrite ^/(.*)$ $scheme://example.com/$1 permanent;
}
多弄几个server不就可以了嘛…有的只监听80,有的只监听443,多简单粗暴…
嗯,这也是一种方法,谢谢补充^^ 我主要是因为server里面的配置多且复杂,所以不太想复制一份