在宝塔面板中为同一站点添加多个域名,须进入站点设置页的「域名管理」选项卡操作;www与主域需分开添加;cdn场景下需跳过检查并配置回源host;新增域名后须重载nginx、更新ssl证书,并确保server_name及防跨站设置同步。

宝塔面板里添加多个域名到同一站点的正确路径
直接在站点列表点击对应网站的「设置」,别去「域名管理」单独找入口——那个页面只是展示,真正能加域名的地方是站点设置页里的「域名管理」选项卡。很多人卡在这一步,以为要先在DNS解析商那里做完才敢点进去,其实顺序反了:宝塔允许你先填好域名,它会实时校验是否已解析生效(但不强制),填完保存就能立刻生效。
-
www.example.com和example.com必须分开添加,不能用通配符代替主域 - 如果用了 CDN 或代理(比如 Cloudflare),宝塔检测「域名是否可访问」可能误报失败,这时勾选「跳过域名检查」再保存
- HTTPS 证书不会自动为新增域名签发,需进入「SSL」选项卡,手动点击「申请」并勾选新加入的域名
为什么新增域名后访问 404 或跳转到默认站
本质是 Nginx 配置未重载或 server_name 未更新。宝塔虽然点了保存,但底层配置文件(/www/server/panel/vhost/nginx/xxx.conf)里的 server_name 行可能没同步写入,尤其当手动改过配置又忘记勾选「启用防跨站攻击」时容易出问题。
- 执行
nginx -t检查语法,再运行bt 1(或点面板右上角「重启」图标)强制重载 Nginx - 打开对应站点的 Nginx 配置文件,确认
server_name后面列出了所有域名,空格分隔,末尾无逗号 - 若启用了「防跨站攻击」,新增域名必须也在 PHP 设置页的「运行目录」和「跨站访问」白名单里显式添加
子域名和泛域名(*.xxx)能不能一起加
可以加,但行为不同:sub.example.com 是明确子域名,加进去就生效;*.example.com 是泛域名,Nginx 原生支持,但宝塔界面不提供输入框,必须手动编辑配置文件,在 server_name 行末尾追加 *.example.com,然后重载服务。
- 泛域名不能和主域名共存于同一行
server_name的 HTTPS 配置中,否则 Let’s Encrypt 申请会失败 - 泛域名匹配只对一级子域名有效(如
a.example.com可以,a.b.example.com不行) - 若同时需要
example.com、www.example.com和*.example.com,建议拆成两个站点:一个主站绑前两者,另一个专用于泛解析子域
CDN 场景下多域名的实际生效逻辑
宝塔只管源站响应,CDN 层的域名绑定、缓存规则、回源 Host 头才是关键。即使你在宝塔里加了十个域名,CDN 如果没把它们全加进加速域名列表,或者回源 Host 没设成 $host,用户访问的仍是 CDN 缓存的默认响应。
- 检查 CDN 控制台的「回源 Host」设置,推荐填
$host而非固定值,确保 Host 头透传到宝塔 - CDN 缓存规则里,若设置了「忽略 Host 头」或「统一返回缓存」,多域名就完全失效
- 本地 hosts 测试时,记得清除 CDN 缓存或临时关闭 CDN,否则看到的永远是旧响应










