首页 > 解决方案 > 想在 Nginx 中将 https://www.example.org 转为 https://example.org

问题描述

我想在 Nginx 中将https://www.example.com重定向到https://example.com

我尝试使用以下代码执行此操作,但我必须重定向多个域,因此不能在返回行中提及特定的“example.com”。我有大约 30 个不同的域需要这样做。

我经历了许多建议的解决方案,但所有解决方案都使用一个不符合我要求的域。就像如果有域(example.com、example.com、xyz.com 等)都需要重定向到 https://reportivedomain(non-www)

server {
    listen 443 ssl http2;
    server_name www.example.com;

    # redirects www to non-www. wasn't work for me without this server block
    return 301 $scheme://example.com$request_uri;
}

更新:

server {
    server_name "www.(.+?\.\w+)" ;
    return 301 https://$1$request_uri;
}

我尝试了上面的代码,但仍然存在错误“ NET::ERR_CERT_COMMON_NAME_INVALID ”。

该网站正在使用以下

example.com
http://example.com
https://example.com

但不是将 www 添加到域,SSL 证书将颁发给非 www 域

标签: nginxsslwebserverdns

解决方案


您可以使用下面的配置重定向。

单域

server {
    listen 443 ssl http2;
    server_name www.example.com;
    return 301 $scheme://example.com$request_uri;
}

多个域

server {
    listen 443 ssl http2;
    server_name "~^www\.(.*)$" ;
    return 301 $scheme://$1$request_uri;
}

资源


推荐阅读