首页 > 解决方案 > nginx 服务器块路由与 cname 组合

问题描述

所以我有一个https://blog.example.net将成为该网站的主要域,我正在尝试将所有可能的变体重定向example.net到它。

以下是我想要涵盖的所有可能查询的列表:

为了涵盖所有这些,我制作了 2 个服务器块:

server {
        listen 443 ssl;
        ssl_certificate /path/to/ssl;
        ssl_certificate_key /path/to/key;
        server_name blog.example.net;
        root /path/to/website;
        index index.html;
}

server {
        listen 80;
        server_name example.net;
        return 301 https://blog.example.net$request_uri;
}

其余的由记录处理,如下所示:

example.net - A - 1.1.1.1
blog.example.net - A - 1.1.1.1
www.blog - CNAME - blog.example.net
www - CNAME - blog.example.net

所有这些都涵盖了 8 个查询中的 6 个。那些用斜体标记并且旁边有一个数字的那些是唯一不起作用的。

第一个是让浏览器发出安全警告,因为显然 SSL 是针对“blog.domain.net”的。第二个工作正常,但是,它在 url 地址中保留了“www”。

处理这些障碍的任何帮助将不胜感激。

升级版:

通过添加此块,我设法修复了将“www”保留在 url 中的第二个:

server {
        listen 443;
        server_name www.blog.example.net;
        return 301 https://blog.example.net$request_uri;
}

所以唯一的问题是https://www.example.net抛出安全警告,因为 SSL 证书适用于blog.example.net

标签: nginxdnssubdomain

解决方案


推荐阅读