- DNS 别名 (CNAME 记录):这是最常用、最标准的“别名”方式,它将一个域名(
blog.example.com)指向另一个域名(www.myblogsite.com),当用户访问blog.example.com时,DNS 服务器会告诉他们去访问www.myblogsite.com,整个过程是透明的。 - 服务器/主机头别名:这种方式是在同一个域名下,让一个主机(服务器)响应多个不同的域名或子域名,让同一个网站同时响应
example.com和www.example.com,这通常在网站服务器配置中完成。
下面我将详细解释这两种方法,并提供具体步骤。

使用 DNS 别名 (CNAME 记录)
这是实现“域名A指向域名B”的标准方法,常用于将子域名指向另一个主域名、指向使用 SaaS 服务的平台(如 Shopify, WordPress.com, GitHub Pages)或指向您的主域名。
核心原理:
alias.yourdomain.com (CNAME记录) -> www.anotherdomain.com
优点:
- 灵活:可以轻松更改目标域名,无需修改所有使用别名的服务。
- 标准:符合 DNS 协议,是互联网上的通用做法。
缺点:

- 不能用于根域名:CNAME 记录不能直接用于顶级域名(如
yourdomain.com),只能用于子域名(如www.yourdomain.com)。 - 需要额外配置:目标域名必须有自己的 DNS 记录(通常是 A 记录),并且其服务器需要支持虚拟主机。
操作步骤 (以 Cloudflare 和阿里云为例)
通用步骤:
- 登录您的 DNS 服务商管理后台:GoDaddy, Namecheap, Cloudflare, 阿里云 DNS, 腾讯云 DNSPod 等。
- 选择您要添加别名的域名。
- 找到“DNS 记录”或“解析”管理页面。
- 添加一条新的 CNAME 记录。
- 类型:选择
CNAME。 - 主机名/记录类型:
- 如果您要为
www.yourdomain.com做别名,就输入www。 - 如果您要为
blog.yourdomain.com做别名,就输入blog。 - 如果您要为整个
yourdomain.com做别名(不推荐,通常用方法二),可以输入 或留空(具体看服务商规则)。
- 如果您要为
- 记录值/目标:输入您要指向的完整目标域名,
www.anotherdomain.com。注意:末尾的句号 是标准的,但现在大多数服务商会自动处理,可以省略。 - TTL (生存时间):保持默认值即可(如
Automatic,1 Hour)。
- 类型:选择
- 保存记录。
等待生效:
DNS 记录更改后,全球 DNS 需要时间来更新,这个过程称为“传播”,通常需要几分钟到 24 小时,但大部分情况下几分钟内就会生效,您可以使用 dig 或 nslookup 命令来验证。
示例 (使用 nslookup 命令):
# 查询 yourdomain.com 的 CNAME 记录 nslookup -type=CNAME blog.yourdomain.com
如果配置成功,它会返回您设置的目标域名,www.anotherdomain.com。

服务器主机头别名
这种方法用于让同一个网站响应多个域名,例如同时让 example.com 和 www.example.com 访问同一个内容,它是在网站服务器层面配置的,与 DNS 无关(DNS 只需要确保两个域名都指向服务器的 IP 地址即可)。
核心原理:
服务器收到对 www.example.com 的请求后,发现这个请求的“主机头”(Host Header) 是 www.example.com,于是就把网站内容返回给用户,它知道 www.example.com 和 example.com 指向的是同一个网站文件。
前提条件:
- 两个域名(
example.com和www.example.com)的 A 记录都指向同一个服务器的 IP 地址。 - 您拥有该服务器的管理权限(或虚拟主机控制面板权限)。
操作步骤 (以 Nginx 和 Apache 为例)
DNS 配置 (基础步骤) 确保您的 DNS 设置正确:
example.com的 A 记录指向服务器 IP0.2.1。www.example.com的 A 记录也指向同一个服务器 IP0.2.1。
服务器配置
A) Nginx 配置
Nginx 的配置非常简洁,您可以在一个 server 块中使用 server_name 指令列出所有域名。
# 在您的 Nginx 配置文件中 (/etc/nginx/sites-available/yourdomain)
server {
listen 80;
# 列出所有要指向同一个网站的域名
server_name example.com www.example.com;
# 网站根目录
root /var/www/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
配置完成后,重启 Nginx:
sudo systemctl reload nginx
B) Apache 配置 Apache 的配置也很常见,通常在虚拟主机文件中进行。
# 在您的 Apache 配置文件中 (/etc/apache2/sites-available/yourdomain.conf)
<VirtualHost *:80>
# ServerName 是主域名
ServerName example.com
# ServerAlias 是所有别名
ServerAlias www.example.com
# 网站根目录
DocumentRoot /var/www/html
# 其他配置...
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
配置完成后,启用站点并重启 Apache:
sudo a2ensite yourdomain.conf sudo systemctl reload apache2
总结与选择
| 特性 | DNS 别名 | 服务器主机头别名 |
|---|---|---|
| 用途 | 将一个域名完全指向另一个域名 | 让一个网站响应多个域名 |
| 实现方式 | 在 DNS 服务商后台添加 CNAME 记录 | 在 Web 服务器配置中添加 server_name 或 ServerAlias |
| 适用场景 | - 子域名指向 SaaS 平台 (Shopify, GitHub Pages) - 简单地重定向流量 |
- 统一主域名和 www 前缀- 同一服务下的多个子域名共享内容 |
| 根域名 | 不支持 | 支持 |
| 优点 | 灵活,易于管理目标 | 服务器端处理,更直接,SEO友好(避免重复内容) |
| 缺点 | 不能用于根域名 | 需要服务器管理权限,目标 IP 必须固定 |
- 如果你想让
shop.yourdomain.com指向www.bigstore.com,用 DNS 别名。 - 如果你想让
www.yourdomain.com和yourdomain.com访问同一个网站,用 服务器主机头别名。
