结论

结论

我想知道如何才能实现这个目标:

new.com --> old.com (displaying new.com in the address bar)

场景:

的用户sub.old.com想要为他的博客购买一个域名(new.com)。但她希望new.com在地址栏中显示 而不是sub.old.com

它将指向子域名。

我需要做什么?我只需要为 new.com 添加一条记录吗?还是也为 old.com 添加一条记录?

最后,是否可以使用 nginx 来完成 old.com 的操作,而不用进入我的域名主机的控制面板?

答案1

一般情况下,如果一个人实际上在一个域上但在 URL 中显示不同的域,这将是一个相当严重的安全问题。

在您实际上可以控制两个域的情况下,最接近的方法是从主机设置一个 iframe,以便在浏览器中显示并引入子域中的内容。

我知道 GoDaddy 基本上提供了这个服务并称之为“转发”网站。

如果担心 SEO 损失,最好是将相关网址sub.old.com发送301 Permanent Redirect到 new.com,让搜索引擎自行处理。

答案2

结论

  1. 在 new.com 上输入指向 sub.old.com 服务器的 A 和/或 AAAA DNS 记录。
  2. 配置 nginx 来监听该域上的请求。

Nginx 配置:

server {
    listen 80;
    listen [::]:80;

    root /var/www/same/as/sub.old.com;
    index index.html index.htm;

    server_name new.com;

    location / {
            try_files $uri $uri/ =404;
    }
}

为什么?

网络上的机器无法与域建立连接,只能与 IP 地址建立连接。因此,DNS 服务器存在以将域转换为 IP。如果您希望两个或多个域指向同一台服务器,则必须将域的 A(IPv4)和/或 AAAA(IPv6)记录设置为指向同一台服务器。这是两个域指向同一 Web 服务器的唯一方法。对于 Web 目的,两个域现在基本上表现相同。其他 DNS 记录仍然可以不同。

重定向流量的另一种方法是让两个域名指向两个不同的网络服务器,new.com 有一个重定向到 sub.old.com 的索引页,但这样 URL 就会改变,因为它实际上将您重定向到另一个域名。它必须这样做,因为 new.com 服务器实际上不托管内容,而 sub.old.com 托管。两个域名都不是在此场景中行为相同。

相关内容