直接答案
通配符子域重定向会使用一条规则,将某个域名(*.oldbrand.com)的每个子域都重定向到新地址,而不是为每个子域单独设置一次重定向。它需要两层:一条通配符 DNS 记录(主机名为 *),将所有子域指向一台可以执行重定向的服务器;以及该服务器上的一条重定向规则,通常是保留路径的 301 重定向。你可以在 Namecheap、Cloudflare Redirect Rule、你自己的 NGINX 或 Apache 服务器上进行设置,或者在 RedirHub 的 Pro 和 Enterprise 套餐中设置。
当一个域名有很多无法逐个列出的子域时,通配符子域就很有用:例如由用户创建的子域,旧品牌下的 shop.、blog. 和 help. 主机,或者人们仍然会输入的拼写错误。本文将解释什么是通配符重定向,然后展示四种设置方法。关于路径上的模式规则(例如 /old-blog/ 下的所有内容),请参阅我们的路径和服务器的通配符重定向指南。

什么是通配符重定向?#
通配符重定向是一条匹配某种模式而不是某个单一精确地址的规则。对于子域,这个模式是 *.oldbrand.com:它会匹配 shop.oldbrand.com、blog.oldbrand.com 以及域名前面的任何其他名称,并以 301(永久)或 302(临时)状态将每个请求发送到你选择的目标地址。
单独的一条通配符 DNS 记录不会执行任何重定向。DNS 只决定某个名称由哪台服务器响应;重定向是来自该服务器的 HTTP 响应。这就是为什么下面每种方法都包含 DNS 部分和规则部分。请记住这些规则:
- 根域是单独的。 通配符记录不包含 oldbrand.com 本身。请将根域作为单独的记录添加并重定向。
- 已有子域优先生效。 具有自己 DNS 记录的子域(例如 mail 或 www)会由该记录解析,而不是由通配符记录解析。
- 更深层的名称也可能匹配。 例如在 NGINX 中,*.example.org 也会匹配 www.sub.example.org。
- HTTPS 需要每个名称都有证书。 如果访问者输入的是 https://,在重定向服务器拥有覆盖该子域的证书之前,浏览器会显示警告。来自 Let's Encrypt 的通配符证书只能通过 DNS-01 验证方式签发。
选项 1:Namecheap 通配符重定向#
当域名使用 Namecheap BasicDNS、PremiumDNS 或 FreeDNS 时,Namecheap 支持通配符 URL 重定向记录:
- 登录 Namecheap,打开 域名列表,然后点击该域名旁边的 管理。
- 在 重定向域名 部分,点击 添加通配符重定向。
- 输入 目标 URL,然后点击 保存更改。
- 打开 高级 DNS 选项卡,找到主机为
*的 URL 重定向记录,并在迁移是永久性的情况下将其类型设置为 永久(301)。Namecheap 的 Unmasked 选项是 302。
Namecheap 说明,新记录通常需要大约 30 分钟才会生效。对于 HTTPS,Namecheap 的指南指出,两个域名之间通过 HTTPS 进行重定向时,两边都需要安装 SSL 证书,所以在完全依赖它之前,请先测试一个 https:// 子域名。我们的 Namecheap 重定向指南 更详细地介绍了 HTTPS 方面的内容。
选项 2:使用通配符模式的 Cloudflare 重定向规则#
如果域名的 DNS 托管在 Cloudflare 上,单个重定向规则可以匹配所有子域名。Cloudflare 只会将该规则应用于其代理的流量,因此子域名需要有一个经过代理的 DNS 记录(例如一个开启代理的 * 记录)。
- 在 Cloudflare 仪表板中,打开 规则 > 概览。
- 点击 创建规则 并选择 重定向规则。
- 在 传入请求匹配 下,选择 通配符模式,并将 请求 URL 设置为
https://*.oldbrand.com/*。 - 在 然后 下,将 目标 URL 设置为
https://mybrand.com/${2}(${2}是第二个星号匹配到的路径),选择状态码 301,并决定是否保留查询字符串。 - 点击 部署。
在目标中使用 ${1} 来复用子域本身,例如 https://mybrand.com/team/${1}。我们的 Cloudflare 重定向指南 会逐步讲解单域重定向。
选项 3:在你自己的服务器上使用 NGINX 或 Apache#
将通配符 DNS 记录(*,A 记录)指向你的服务器,安装一个覆盖 *.oldbrand.com 的证书,然后添加一条规则。NGINX:
nginxserver {
listen 443 ssl;
server_name *.oldbrand.com;
ssl_certificate /etc/ssl/oldbrand-wildcard.pem;
ssl_certificate_key /etc/ssl/oldbrand-wildcard.key;
return 301 https://mybrand.com$request_uri;
}Apache(在虚拟主机上使用 ServerAlias *.oldbrand.com,并启用 mod_rewrite):
apacheRewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.oldbrand\.com$ [NC]
RewriteRule ^ https://mybrand.com%{REQUEST_URI} [R=301,L]$request_uri 和 %{REQUEST_URI} 会保留路径,因此 shop.oldbrand.com/cart 会跳转到 mybrand.com/cart。如果你不确定,请先用 302 测试,因为浏览器会缓存 301。
你的重定向是否正常工作? 输入你的域名。你将看到状态码(301 或 302)、跳转到哪里、HTTPS 是否有效,以及它从华盛顿、法兰克福和东京响应的速度,并与过去 7 天内测试过的所有重定向进行排名比较。
测试我的重定向选项 4:使用 RedirHub 的通配符子域重定向#
RedirHub 会为你运行重定向,因此你不需要服务器、通配符证书或代理。通配符子域重定向包含在 Pro 和 Enterprise 套餐中。
- 在 RedirHub 控制面板中,创建一个新的 域名重定向。
- 在 从 中,输入
*.oldbrand.com。若也要包含根域,请将 oldbrand.com 作为另一个来源添加到同一个重定向中。 - 在 重定向到 中,输入
https://mybrand.com。 - 在 重定向类型 下,选择 301 · 永久(若是短期更改,则选择 302 · 临时)。
- 在 路径 下,选择 保留路径,这样每个旧 URL 都会落到相同的路径,或者选择 全部指向一个 URL。
- 点击 创建重定向。
- 打开 主机名,选择该主机名,点击 连接 DNS,并在你的 DNS 服务商处添加所示记录(手动),然后点击 我已完成更改。
- 使用 重定向速度测试测试几个子域名:你应该会看到 301 以及每个子域名对应的正确目标地址。
RedirHub 会在每个子域名首次被请求时自动为其颁发证书,这就是你在每个已连接域名上获得的 自动 HTTPS。在 Enterprise 版中,单个通配符证书会覆盖 *.oldbrand.com。
将每个子域名发送到它自己的页面#
通配符源通常会与目标变量结合使用,这样一条规则就能把每个子域名发送到不同的位置。{host.sub} 会插入所请求的子域名:
textRedirect from: *.example.com
Redirect to: https://www.example.com/team/{host.sub}
alice.example.com → https://www.example.com/team/alice
bob.example.com → https://www.example.com/team/bob你也可以使用 https://{host.sub}.new-brand.com 并保留路径,把子域名保留在新域名上;这通常是迁移到新品牌的 网站迁移 设置。有关变量的完整列表,请参见 目标 URL 变量。
Namecheap、Cloudflare、你的服务器,还是 RedirHub?#
| Namecheap | Cloudflare | 自有服务器 | RedirHub | |
|---|---|---|---|---|
| DNS | 必须使用 Namecheap DNS | 必须使用 Cloudflare DNS,已代理 | 指向您服务器的通配符 A 记录 | DNS 保持在原处不变;只有 Connect DNS 中显示的记录会更改,电子邮件(MX)仍可正常工作 |
| 子域名上的 HTTPS | 需要在双方都安装 SSL | 由 Cloudflare 为已代理主机名处理 | 您安装并续订通配符证书(DNS-01) | 为每个子域名自动签发并续订 |
| Paths | 一个目标 | 带有 ${1}、${2} 的模式 | 重写规则 | 保留路径,或像 {host.sub} 这样的变量 |
| Network | 未发布 | Cloudflare 的网络 | 您服务器的位置 | 由 130 个全球边缘位置(PoP)提供服务,靠近每位访问者 |
| 重定向类型 | 301, 302, masked | 永久或临时 | Any | 301、302、307、308 和 frame |
| Clicks | 未显示 | 不在规则中 | 您的服务器日志 | 已过滤机器人后的点击和独立访客,每个域名的热门链接 |
| Price | 随域名免费提供 | 规则配额取决于您的 Cloudflare 套餐 | 您的服务器成本和时间 | Pro 套餐(每月 119 美元,14 天免费试用)和 Enterprise 套餐支持通配符 |
如果您的域名已经使用 Cloudflare 的代理或 Namecheap DNS,且您只需要一条规则,那么那里的免费选项就足够了。当您在一个地方管理许多域名、希望无需代理即可为每个子域名处理 HTTPS,或者需要让每个子域名跳转到自己的页面时,RedirHub 更适合。通过 批量 CSV 导入,您可以一次性添加其余域名的重定向。
在你打开它之前#
- 使用 301 进行永久迁移,并直接指向最终 URL,这样就不会形成跳转链。
- 如果新站点有相同的页面,请保留路径;把所有内容都导向首页会丢失相关性。
- 也要重定向根域名和 www,因为通配符不包括根域名。
- 测试真实子域名,包括一个你从未创建过的子域名,并分别通过 http:// 和 https:// 访问。
常见问题
通配符重定向是一条可匹配某种模式的规则,例如 *.oldbrand.com,而不是一个精确地址。所有匹配的子域或 URL 都会被发送到你选择的目标,通常会使用 301 表示永久迁移。
不。通配符记录只匹配域名前面的名称,例如 shop.oldbrand.com,而不包括 oldbrand.com 本身。请为根域单独添加一条记录并重定向;在 RedirHub 中,你可以将其作为同一重定向中的第二个来源添加。
不。通配符 DNS 记录(主机名 *)只决定每个子域由哪台服务器响应。重定向是来自该服务器的 HTTP 响应,因此你还需要在 Namecheap、Cloudflare、你自己的服务器或重定向服务上设置重定向规则。
可以。Cloudflare 可以在目标 URL 中使用 ${1} 重用匹配到的子域,而 RedirHub 可以使用 {host.sub} 变量插入它,例如 https://mybrand.com/team/{host.sub}。
重定向服务器在通过 HTTPS 响应之前,需要有覆盖该子域的证书。请在你自己的服务器上使用通配符证书,使用 Cloudflare 上的代理记录,或使用会自动为每个子域签发证书的重定向服务。
Pro 和 Enterprise。Core 不包含。Pro 提供 14 天免费试用。
