宝塔不支持子目录直接绑定子域名,子域名必须新建站点或用反向代理/软链接实现;新建站点需独立配置ssl、php等;反向代理可复用主站证书和规则;“子目录绑定”功能仅作用于路径前缀,不处理子域名解析。

宝塔不支持“在一个站点里直接给子目录绑子域名”——这是最常被误解的点。你必须明确:子域名 = 新站点,或通过反向代理/软链接绕过限制。
添加子域名必须新建站点,不能复用主站设置
宝塔面板底层将每个域名(含子域名)视为独立 server 块。填 blog.example.com 时,它不会自动继承 example.com 的 PHP 版本、SSL 或伪静态规则。
- 在【网站】→【添加站点】中,“域名”栏只填完整子域名,例如
blog.example.com,不要加主域名或其他子域名 - “根目录”必须手动指定为全新路径,如
/www/wwwroot/blog.example.com;若填成/www/wwwroot/example.com/blog,后续无法单独配置 SSL 和防火墙 - PHP 版本、FTP、数据库等选项建议关闭,除非该子域名真需要独立运行环境
- 提交后,宝塔会自动创建目录并写入 Nginx 配置,但不会自动申请证书——
https://blog.example.com会显示证书错误,需单独点【SSL】→【申请】
想共用主站 SSL 和 Nginx 规则?用反向代理替代子目录绑定
如果你已有 example.com 站点且已配好证书、WAF、CDN 回源,又希望 blog.example.com 指向同一台服务器上的 /www/wwwroot/example.com/blog/ 目录,就别建新站点,改用反向代理:
- 进入主站【设置】→【反向代理】→【添加反向代理】
- 代理名称随意,如
blog_proxy;目标 URL 填http://127.0.0.1:8080(前提是你的 blog 子目录已跑起本地服务,比如npm start监听 8080) - 必须勾选【启用代理目录】,并在输入框填
/(注意是根路径),同时在【发送域名】填blog.example.com - 不填代理目录或填错斜杠(如写成
blog而非/),会导致 404 或重定向循环
误点“子目录绑定”按钮?它根本不是你要的功能
面板里那个【子目录绑定】入口,实际作用只是给同一个域名增加路径前缀入口(如 example.com/blog/),**不是**把 blog.example.com 绑到某个子目录。很多用户点进去填了 blog.example.com 和 /blog,结果发现访问 blog.example.com 仍是 404——因为该功能根本不处理 Host 头匹配。
- 该功能生成的配置本质是
location /blog/ { ... },只影响路径,不影响域名解析逻辑 - 若硬要用它“假装”支持子域名,得配合 DNS 泛解析 + Nginx 手动改
server_name,极易出错且无法自动续签证书 - 专业版所谓“子目录绑定支持子域名”,也只是 UI 层封装,底层仍走反向代理或软链接,没绕过单域名单 server 块的限制
真正麻烦的不是操作步骤,而是搞清「哪个域名由哪个 server 块响应」。一旦混用新建站点、子目录绑定、反向代理三种方式,Nginx 配置容易冲突,nginx -t 报错却找不到源头——建议每次只选一种模式,并在修改前备份 /www/server/panel/vhost/ 下对应配置文件。











