我有一个 Nginx Web 服务器,我需要:
- 将所有 HTTP(www 和非 www)重定向到 HTTPS
- 将所有非 www 的 HTTPS 重定向到 www
我知道我可以使用不同的 server{} 块,但我想使用“if”语句通过一个服务器块实现这一点,所以这是我实际的 Nginx vhost 配置:
server {
listen 80;
listen 443 ssl http2;
server_name website.com www.website.com;
if ($scheme = "http") {
return 301 https://www.website.com$request_uri;
}
if ($host = "website.com") {
return 301 https://www.website.com$request_uri;
}
[...]
}
它运行正常,没有问题:
http://website.com => https://www.website.com
http://www.website.com => https://www.website.com
https://website.com => https://www.website.com
我的问题是我的配置是否正确。
谢谢!