宝塔面板多域名仅主域名生效的根源在于nginx配置中server_name仅写入首个域名且未空格分隔,https需用多域名ssl重新申请,子目录应避免误建子域名站点,dns与cdn未就绪亦会导致访问失败。

宝塔面板添加多个域名后只有主域名生效
常见现象是:在网站设置里填了 www.example.com 和 example.com,但访问后者直接跳转 404 或被 Nginx 拒绝。根本原因不是“没保存”,而是宝塔默认只把第一个域名写进 server_name,其余域名被忽略或未正确分隔。
- 检查网站根目录下的配置文件:
/www/server/panel/vhost/nginx/xxx.conf,打开后找server_name行 - 如果看到类似
server_name example.com;(结尾有分号且无空格分隔),说明其他域名根本没写进去 - 手动编辑该行,改成
server_name example.com www.example.com api.example.com;,注意:每个域名间用空格分隔,结尾必须保留分号 - 改完执行
nginx -t验证语法,成功后再systemctl reload nginx
HTTPS 下多域名证书不匹配导致访问失败
加了 SSL 后,example.com 能打开,www.example.com 却提示“证书与域名不匹配”,是因为宝塔申请 Let’s Encrypt 时默认只给第一个域名发证书,其余域名不在 subjectAltName 里。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
- 进入网站 → SSL → “申请”按钮右侧点下拉箭头 → 选“多域名 SSL”
- 在弹出框里把所有要绑定的域名一次性粘贴进去,用英文逗号分隔,比如:
example.com,www.example.com,shop.example.com - 不要先申请单域名证书再补加——旧证书不会自动更新 SAN 列表,必须删掉重申请
- 证书申请成功后,确认配置文件中
ssl_certificate和ssl_certificate_key指向的是新生成的带多域名的 PEM 文件(路径含_multi字样)
子目录型多站点误配成子域名,导致 404 或跳转混乱
想实现 example.com/blog 和 example.com/shop 共存,却在“添加站点”时填了 blog.example.com,结果宝塔自动生成独立 server 块,和主站冲突。
- 这种需求不该新增站点,而应在主站根目录下建
blog/、shop/子目录,然后通过伪静态或 location 规则分流 - 进网站设置 → “配置文件” → 在
server块内加一段:
location ^~ /blog/ {
alias /www/wwwroot/example.com/blog/;
index index.php;
}
alias 结尾必须带斜杠,且路径要和实际目录一致;用 root 容易少一级路径导致 403nginx -t && systemctl reload nginx
宝塔后台已绑域名但 DNS 解析未生效,误判为配置失败
配置全对,nginx -t 通过,curl -I 却返回 502 或连接超时——大概率是本地 hosts 或 DNS 缓存没刷新,或者 CDN 没关。
- 在服务器上直接
curl -H "Host: www.example.com" http://127.0.0.1,绕过 DNS 和端口转发,看是否返回预期内容 - 本地测试前先
ping www.example.com,确认解析到的是你的服务器 IP,不是 CDN 或旧 IP - 如果用了 Cloudflare 等 CDN,确保“DNS only”模式已关闭,否则 HTTPS 请求根本到不了你的 Nginx
- 浏览器访问时强制硬刷新(Ctrl+F5),并清空 HSTS 缓存(Chrome 地址栏输
chrome://net-internals/#hsts删除域名)
server_name 匹配是精确字符串比对,不支持通配符跨级匹配(如 *.example.com 不会匹配 www.example.com),也不自动包含无 www 版本。这点很容易被当成“宝塔 bug”,其实只是配置漏了或证书没覆盖全。










