宝塔面板支持单站点绑定多个域名,只需在「域名管理」中每行填写一个完整域名(不带协议和空格),并确保dns已解析到服务器ip;https需为每个域名单独配置ssl证书;可设置301重定向统一主域,或使用「子目录绑定」功能实现不同域名指向不同子目录。

一个站点怎么加多个域名?直接填进“域名管理”就行
宝塔面板本身支持单站点绑定多个域名,不需要新建多个网站,也不用改 Nginx 配置文件——所有操作都在 Web 界面完成。
进入【网站】模块 → 找到目标站点 → 点击「编辑」→ 在「域名管理」文本框里,每行写一个域名,比如:
example.com www.example.com demo.site.com
注意:不要带 http:// 或 https://,也不能有空格或逗号分隔;每行只一个完整域名(可含子域)。
- 所有域名必须提前在 DNS 解析到服务器 IP,否则访问会失败(常见错误:浏览器显示“无法访问此网站”或 502)
- 如果用了 CDN 或代理(如 Cloudflare),要确认回源 IP 是你的真实服务器 IP,否则宝塔收不到请求
- 宝塔默认不区分 www 和根域,两个都填上才都能访问;否则只填
example.com,www.example.com就 404
多个域名都要 HTTPS?每个得配独立 SSL 证书
宝塔的 SSL 功能默认只给「主域名」自动申请和部署证书。如果你填了 example.com 和 blog.example.com,但只给前者开了 Let’s Encrypt,后者访问 https://blog.example.com 就会提示证书不匹配(NET::ERR_CERT_COMMON_NAME_INVALID)。
解决办法不是“共用一张证书”,而是为每个域名单独上传并配置证书:
- 先在「SSL」选项卡里为第一个域名申请或上传证书(比如
example.com) - 再手动把其他域名的证书(
xxx.crt+xxx.key)上传到/www/server/panel/vhost/cert/站点域名/目录下(目录名必须和你在「域名管理」里写的完全一致,比如blog.example.com) - 然后点击「配置文件」→ 找到
server_name块,在下面复制一份完整的server { ... }块,把里面的server_name换成新域名,并把ssl_certificate和ssl_certificate_key路径指向对应证书文件 - 保存后点「重载 Nginx」,别只点「保存」——不重载,新配置不生效
想让多个域名跳转到同一个主域?用 301 重定向最稳妥
多个域名指向同一套内容,对 SEO 不友好,容易被当成重复内容。统一跳转是常规做法,宝塔内置了快捷方式。
编辑站点 → 「重定向」→ 「添加重定向」→ 类型选「301」→「源域名」填要跳走的域名(如 www.example.com),「目标 URL」填主域带 https://(如 https://example.com$request_uri)。
-
$request_uri很关键:它保留原始路径和参数,比如访问https://www.example.com/a/b?c=1会跳到https://example.com/a/b?c=1,而不是只跳首页 - 别用 JavaScript 或 meta refresh 跳转——搜索引擎不认,且首屏白屏明显
- 如果同时开了多个 301 规则,注意顺序:宝塔按列表从上到下匹配,前面的规则命中了就不会执行后面的
子目录也要绑不同域名?走「子目录绑定」功能
比如你想让 shop.example.com 指向 /www/wwwroot/example.com/shop/,这不是泛解析或二级域名解析的事,得用宝塔的「子目录绑定」功能。
编辑站点 → 点「子目录绑定」→ 填写域名(如 shop.example.com)→ 选择对应子目录(如 /shop)→ 添加。
- 这个功能本质是新增一个
server块,内部用root指向子目录,所以它和主站是隔离的,可以单独设伪静态、SSL、防盗链 - 子目录路径必须以
/开头,且不能包含上级路径(比如不能填../other-site),否则 Nginx 启动报错:nginx: [emerg] the rewritten domain name has a wrong syntax - 子目录绑定后,该域名不再受主站「域名管理」控制,删掉主站里的这个域名,不影响子目录绑定的访问
多域名这事看着简单,真正卡住人的往往不是操作步骤,而是 DNS 解析没生效、证书路径写错、Nginx 没重载这三处。建议每次改完,用 curl -I http://xxx 和 curl -I https://xxx 分别测状态码和证书信息,比刷浏览器快得多。










