想要将完整域名解析为第二个域名上的子域名:
例如,如果我有这个子域名:
subdomain.firstdomain.com
第二个域:
seconddomain.com
我希望 seconddomain.com 解析第一个子域,以便用户始终可以查找,例如:seconddomain.com/whatever.html代替subdomain.firstdomain.com/whatever.html
两个域名都在同一台服务器上,相同的 IP,并且我们拥有完全的控制权。
我希望我的解释已经很清楚了。
也许配置 CNAME 或添加 .htaccess 文件?
答案1
有多种方法可以实现您的目标,但是,无论采用哪种方法,您都需要:
- 指向您的 Apache 服务器的 DNS 记录。
- Apache 重写(重定向、重新映射等)服务器端以更改显示的主机名
subdomain.firstdomain.com
到seconddomain.com
1.DNS 记录
你没有提供任何信息,但你的 DNS 在哪里firstdomain.com
托管,您需要创建一个一个记录或CNAME 记录为了subdomain.firstdomain.com
以及另一个www
版本(如果您希望包含在内)。
- 如果使用记录,你需要输入 Apache 服务器的公共 IP 地址
- 如果使用CNAME 记录,您需要输入如下主机名
seconddomain.com
已经解析为你的 Apache 服务器的公共 IP 地址
示例:DNS 记录
类型 | 领域 | IP/主机名 |
---|---|---|
A | subdomain.firstdomain.com |
###.###.###.### |
别名记录 | www.subdomain.firstdomain.com |
subdomain.firstdomain.com |
2. Apache:重写
有不同的方法,但鉴于你的目标是使用seconddomain.com
而不是其他主机名subdomain.firstdomain.com [www.subdomain.firstdomain.com]
到达同一站点,规范主机名是专为此用途而设计的,因此可能是一种好方法。
以下规则不涉及mod_rewrite
,但使用重定向放置在非规范主机名的虚拟主机中的指令:
<VirtualHost *:80>
ServerName subdomain.firstdomain.com
ServerAlias www.subdomain.firstdomain.com
Redirect "/" "http://seconddomain.com/"
</VirtualHost>
<VirtualHost *:80>
ServerName seconddomain.com
</VirtualHost>
Apache 重写:使用 mod_rewrite 进行重定向和重新映射