我已经购买了一个域名,并且可以修改其 DNS,我们将其称为 A(因此我可以更改 A、AAAA 和 CNAME)。
然后我购买了另一个带有一些托管空间的域名,称之为 B。
是否可以在访问 A 时显示托管在 B 上的一些内容(而不向用户显示 B 的地址?)
答案1
您只需创建指向第二个域的 CNAME 记录即可。
例如创建类似
domain1.com IN CNAME domain2.com
并要求您的用户使用 domain1.com
从技术上讲,您在域“B”上设置了所有内容。最终,您只需使用域“A”的域名创建一个 CNAME,并使其指向“域 B”。
编辑:注意,如果您使用 SSL,那么您也必须在 CNAME(domain1)上拥有 SSL 证书,以避免出现问题。
答案2
您无法在 DNS 级别解决这个问题,因为 DNS 只能将主机名解析为 IP 地址。它就像电话簿一样。
如果您需要www.example.com/somecontent
从一台服务器提供服务而其余服务www.example.com
在另一台服务器上,则需要通过 HTTP 协议执行此操作。
如果你的要求是对方服务器的地址不能被泄露,你需要设置一个反向代理。
答案3
您可以在 Web 服务器级别使用(基于名称的)虚拟主机执行此操作。
将两个名称的 DNS 设置为相同的 IP。
使用 2 个(基于名称)虚拟主机配置 apache。
domain1 有一个文档根目录/var/www-domain1
,其中包含一些目录,其中一个名为 /download - 因此该文件夹的文件系统路径是/var/www-domain1/download
设置 domain2,以便其文档根目录为/var/www-domain1/download
domain1 认为http://domain1/download/foo.tar.gz domain2 将服务于http://domain2/foo.tar.gz
另一种偷懒的方法是使用符号链接,只要告诉网络服务器遵循它们即可。您还可以为各种目录设置别名,因此,如果您安装了 phpMyAdmin,它可以在http://anyofyourdomains/phpmyadmin但所有文件都位于 /usr/lib/phpMyAdmin 中,并且该目录只是别名。