宝塔面板泛域名绑定设置是指在宝塔面板中为站点添加 *.example.com 形式的泛解析域名并完成绑定,使所有未被单独配置的子域名自动指向该站点。
泛域名绑定涉及的两个层面
泛域名绑定由域名解析和宝塔站点绑定两部分组成,域名解析负责将任意子域名解析到服务器IP,宝塔站点负责在Web服务器中匹配这些子域名并指向对应网站目录。

域名解析层面的泛解析
在域名DNS控制台添加一条主机记录为 的解析记录,类型通常选择 A,记录值为服务器IPv4地址,如果使用IPv6,则添加 AAAA 记录,也可以使用 CNAME 记录指向一个已解析的域名,但使用CNAME泛解析时需确认DNS服务商允许 主机记录。
DNS记录示例:
| 记录类型 | 主机记录 | 记录值 | TTL |
|---|---|---|---|
| A | 0.2.1 | 600 | |
| AAAA | 2001:db8::1 | 600 |
添加泛解析后,a.example.com、b.example.com、test.example.com 等任意一级子域名都会解析到该记录值,对于多级子域名如 x.y.example.com,大多数DNS服务商的 记录不会自动匹配多级,需要单独添加 *.y.example.com 或使用支持多级通配的DNS服务。
宝塔站点绑定层面的泛域名
当子域名请求到达服务器后,Nginx或Apache根据HTTP请求头中的 Host 字段匹配对应的站点,宝塔面板允许在站点域名中添加 *.example.com,自动生成包含通配符的服务器配置,使匹配到的子域名进入相同网站目录。
在域名服务商处添加泛解析记录
以下以常见DNS控制台为例说明。
登录域名注册商或DNS托管平台,进入域名解析设置。
点击“添加记录”。
记录类型选择
A。主机记录填写 ,不要填写具体子域名。
记录值填写宝塔服务器公网IPv4地址。
TTL可保持默认600秒,便于快速生效。
确认保存。
如果服务器仅使用IPv6,记录类型选择 AAAA,记录值填写IPv6地址,如果使用CNAME方式,主机记录填写 ,记录值填写目标域名,lb.example.com,需要注意CNAME与MX记录、NS记录存在冲突时需按DNS规范处理。
保存后可以通过以下命令验证解析是否生效:
nslookupa.example.com pinga.example.com
Windows PowerShell可执行:
Resolve-DnsNamea.example.com
在宝塔面板中添加站点并绑定泛域名
新建站点时直接绑定
登录宝塔面板,进入“网站”管理页面。
点击“添加站点”。
在“域名”输入框中填写以下两行:
example.com *.example.com
说明:裸域名 example.com 不会被 *.example.com 自动匹配,需要单独填写,多个域名每行一个。
依次选择网站根目录、PHP版本、数据库选项等,根目录默认 /www/wwwroot/example.com,可自定义。
如果不需要FTP和数据库,可取消对应选项。
点击“提交”后,宝塔会自动创建网站目录,并在Nginx或Apache配置中写入如下内容。
Nginx配置示例:
server{
listen80;
server_nameexample.com*.example.com;
root/www/wwwroot/example.com;
indexindex.phpindex.html;
...
}Apache配置示例:
<VirtualHost*:80> ServerNameexample.com ServerAlias*.example.com DocumentRoot/www/wwwroot/example.com ... </VirtualHost>
为已有站点追加泛域名绑定
进入“网站”列表,找到目标站点,点击“设置”。
在“域名管理”中追加一行:
*.example.com
保存后,宝塔会重新生成对应站点配置,如果使用Nginx,可在服务重启后生效。
Nginx与Apache对泛域名的匹配规则
Nginx的匹配行为
Nginx的 server_name 支持通配符,*.example.com 可以匹配 a.example.com、b.example.com 等一级子域名,但不能匹配裸域名 example.com,也不能匹配 a.b.example.com,如果同时配置 example.com 和 *.example.com,则两者均可访问。
当多个站点配置存在泛域名时,Nginx按以下优先级匹配:
精确名称
以 开头的最长通配符名称
以 结尾的最长通配符名称
正则表达式名称
如果存在 a.example.com 的独立站点,它会优先于 *.example.com 泛域名站点被访问,这适合为部分子域名分配独立目录或独立程序。
Apache的匹配行为
Apache使用 ServerAlias *.example.com 实现类似功能,同样只匹配一级子域名,如果有独立子域名虚拟主机,Apache会优先匹配更精确的 ServerName 或 ServerAlias。
多级子域名的处理
若需要 a.b.example.com 这类多级子域名也访问同一站点,可手动修改站点配置文件,Nginx可将:
server_nameexample.com*.example.com;
改为:
server_nameexample.com*.example.com~^.*\.example\.com$;
Apache可在站点配置中增加:
ServerAlias*.*.example.com
但Apache的 不能跨点号,多级需要用正则或逐级配置,修改后需在宝塔面板中重载服务,且注意宝塔重新保存站点时可能覆盖手动修改,因此建议修改后记录备份或使用宝塔的配置文件保留机制。
为泛域名站点配置HTTPS证书
泛域名站点通常需要一张覆盖所有子域名的通配符证书。
申请Let's Encrypt泛域名证书
Let's Encrypt对泛域名证书仅支持DNS验证,不支持HTTP验证,宝塔面板提供DNS验证入口。
进入站点设置中的“SSL”或“Let's Encrypt”页面,勾选“使用DNS验证”,选择对应的域名解析服务商并填入API密钥,或手动配置TXT记录。
证书域名处填写:
example.com *.example.com
申请成功后,宝塔会保存证书并自动配置HTTPS,Let's Encrypt泛域名证书有效期为90天,宝塔可自动续期。
手动上传商业泛域名证书
如果已购买商业通配符证书,可在“SSL”页面选择“其他证书”,粘贴PEM格式证书和私钥,保存后启用强制HTTPS。
通配符证书的匹配范围
商业通配符证书或Let's Encrypt泛域名证书通常只覆盖一级子域名,*.example.com 覆盖 a.example.com,不覆盖 a.b.example.com,若需要覆盖多级子域名,需要申请多个泛域名证书或使用包含多个条目的证书,并在Web服务器中配置多个证书。
泛域名站点中的子域名路由
泛域名绑定后,所有子域名默认进入同一个网站根目录,实际业务可通过程序逻辑或Web服务器规则将不同子域名指向不同内容。
程序内部判断子域名
在PHP中可以获取当前访问的Host并分发:
$host=$_SERVER['HTTP_HOST']??'';
$subdomain=str_replace('.example.com','',$host);
switch($subdomain){
case'shop':
//加载商城模块
break;
case'api':
//加载接口模块
break;
default:
//加载默认站点
}这种方式适合多租户应用、用户子站点或SaaS平台。
Nginx按子域名分发到不同目录
如果不修改程序,可以使用Nginx的 map 或 rewrite 规则,在站点配置文件中添加:
map$host$subsite{
defaultdefault;
shop.example.comshop;
api.example.comapi;
}
server{
listen80;
server_nameexample.com*.example.com;
root/www/wwwroot/example.com/$subsite;
indexindex.phpindex.html;
...
}实际使用时可结合宝塔的“配置文件”功能进行修改,Nginx map 指令需放在 http 段,宝塔站点配置通常包含在 http 段内,可在站点配置顶部加入。
反向代理到不同后端服务
宝塔面板支持为站点添加反向代理,泛域名站点可对指定子域名设置反向代理,
子域名:api.example.com 目标URL:http://127.0.0.1:8080 发送域名:$host
配置后,api.example.com 的请求会被转发到本地8080端口服务,其他子域名仍走原站点目录。
常见问题与故障排查
任意子域名解析后仍无法访问
先使用 ping random.example.com 检查是否解析到服务器IP,如果解析未生效,检查DNS记录是否保存成功、TTL是否过长导致缓存未更新,可降低TTL后重新测试。
如果解析正常但访问返回默认页面或404,请检查宝塔站点是否已绑定 *.example.com,并确认Nginx/Apache服务已重载。
访问裸域名时出现证书错误
如果证书仅申请了 *.example.com,裸域名 example.com 未在证书范围内,访问裸域名会提示证书不匹配,申请证书时应同时包含 example.com 和 *.example.com。
多级子域名无法匹配HTTPS证书
*.example.com 证书不覆盖 a.b.example.com,如需支持多级子域名,可调整Web服务器配置并用不同证书,或为多级子域名单独申请证书。
已被独立绑定的子域名被泛域名站点拦截
当 a.example.com 已配置为独立站点时,Web服务器会优先匹配精确名称,如果访问结果不正确,检查独立站点的域名绑定是否缺失,以及泛域名配置是否误写为更优先的规则。
泛域名HTTPS续期失败
Let's Encrypt DNS验证依赖DNS服务商API接口的授权有效性,若API密钥过期、权限不足或DNS记录未自动清理,续期可能失败,在宝塔面板中检查DNS接口授权状态,并重新申请或手动完成TXT验证。
安全加固建议
泛域名绑定意味着任何未被明确配置的子域名都可能解析到服务器,增加未授权访问风险。
在站点程序中校验子域名白名单,拒绝恶意或未注册子域名。
为泛域名站点配置全站HTTPS,并强制跳转。
对敏感子域名(如
admin.example.com、api.example.com)单独绑定并设置访问控制或IP白名单。开启访问日志,定期检查异常子域名访问记录。
如果不需要泛解析,尽量删除DNS中的 记录,只保留实际使用的子域名。
宝塔面板自身启用安全入口、面板SSL和访问限制,避免面板被恶意登录。