我的 nginx 配置中有两个服务器 block :
server {
listen 80;
server_name domain.com;
return 301 https://domain.com$request_uri;
}
server {
listen 443 ssl;
server_name domain.com;
<ssl stuff>
<root directory>
}
我基本上是使用第一个服务器 block 将所有 HTTP 流量重定向到 HTTPS。我正在对重定向域名进行硬编码,因为我想明确避免重定向到 htps://www.domain... - 我想要 https://domain ...
当我请求非 www HTTP 域时,nginx 正确重定向到非 www HTTPS 域
但是,当我请求 www HTTP 域时,nginx 不会重定向到非 www HTTPS 域。不知何故,即使我明确指定不这样做,它也会向 HTTPS 重定向添加一个 www。
为什么?
最佳答案
只是在没有测试的情况下看这个,我会说它没有选择 www.domain.com 因为它没有在配置中指定。我相信您需要一个单独的 www 规范,或者使用正则表达式。
server {
listen 80;
server_name domain.com
www.domain.com;
return 301 https://domain.com$request_uri;
}
关于http - nginx https 重定向添加 www,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36322945/