nginx:将没有子域名的 https 流量重定向到子域名(非 www 到 www)

nginx:将没有子域名的 https 流量重定向到子域名(非 www 到 www)

我当前的 SSL 证书涵盖子域名 www.example.com 和 static.example.com

因此,如果用户尝试通过以下方式访问我的网站https://example.com我想将他重定向到https://www.example.com

我怎样才能在我的 nginx 配置中做到这一点?

我知道这里有人问过类似的问题,但我找不到解决方案。

答案1

首先,你应该获得一份有效期为example.com和的证书www.example.com(你可以从以下网站免费获得启动SSL或者沃通)。然后确保您的 nginx 中启用了 SNI(默认情况下应该启用)。然后只需将以下内容添加到您的 nginx.conf 中:

server {
    listen 0.0.0.0:443 ssl spdy;
    listen [::]:443 ssl spdy;
    listen 0.0.0.0:80;
    listen [::]:80;
    ssl_certificate /etc/ssl/example.com.crt;
    ssl_certificate_key  /etc/ssl/example.com.key;
    server_name example.com;
    return 301 https://www.example.com$request_uri;
}

相关内容