ThinkPHP 6/8配置二级域名全流程:从入门到多应用绑定【教程】
在ThinkPHP6/8中配置二级域名需:安装多应用扩展并删除默认控制器;开启url_domain_deploy;在路由中绑定子域名规则;同时确保Nginx或Apache正确传递Host头。按步骤验证可避免配置失败。
在ThinkPHP 6或8环境下实现二级域名访问,根本思路不是复制多套代码或修改入口文件,而是让同一套程序根据访问的子域名自动加载对应的应用模块。具体该怎么操作?其实就三步:先确保基础结构到位,再开启框架的域名识别,最后在路由中绑定子域名规则。当然,还需要Web服务器正确传递Host头信息。
先说几个核心判断。整个过程并不复杂,但不少开发者容易在细节上栽跟头。配置失败的原因往往不是逻辑错误,而是某些关键步骤被遗漏了。
一、先确保多应用基础结构到位
二级域名绑定的前提是项目已经按多应用方式组织起来了。如果还没有做这一步,需要先完成以下动作:
- 执行
composer require topthink/think-multi-app安装多应用扩展 - 删除根目录下的
app/controller目录——这是触发框架进入多应用识别的关键操作 - 用命令创建独立应用,例如
php think build admin、php think build api,生成app/admin/和app/api/等目录 - 每个应用内应有自己完整的
controller/、route.php和中间件配置,实现物理隔离

这一步完成后,项目就具备了承载多个独立应用的基础能力。说得直白些,相当于在同一套代码里,给每个子域名预留了一个独立的“房间”。
二、开启域名部署,注册子域名规则
在 config/app.php 中找到 url_domain_deploy 配置项,将其设为 true。这里需要特别注意:TP6/8 已经废弃了 APP_SUB_DOMAIN_DEPLOY 这种旧写法,别再用了。
接下来,在 route/app.php(推荐)或 app/common/route.php 中注册绑定关系:
use thinkRoute;Route::domain('admin', 'admin');→ 访问admin.example.com自动加载app/admin/Route::domain('api', 'api');→api.example.com对应app/api/Route::domain('*', 'index');→ 其他未匹配子域名(包括www.example.com、example.com)默认走app/index/
左侧是子域名(支持通配符),右侧是 app/ 下的目录名。不需要写控制器或方法,整个应用会被完整加载。这就像给每个应用发了一个专属的“门牌号码”,框架会根据来访的子域名自动找到对应的“房间”。
三、Web服务器必须正确转发Host头
这个环节最容易出问题。Nginx 或 Apache 如果没有传递真实 Host,框架就无法识别子域名,所有请求都会落到默认应用上。具体配置要点如下:
- Nginx:在
server块中确保server_name包含泛解析(如server_name ~^(?.+).example.com$;)或显式列出子域名;同时检查fastcgi_param HTTP_HOST $host;是否存在且未被覆盖 - Apache:启用
mod_rewrite,并在.htaccess或虚拟主机配置中确保AllowOverride All已开启,且重写规则能将请求准确导向public/index.php - 本地开发调试时,可以用
var_dump($_SERVER['HTTP_HOST'])查看实际接收到的 Host 值,再与配置比对。这是一个非常实用的排查技巧
四、避开几个高频坑
配置本身并不复杂,但真正的挑战往往藏在这些细节里:
domain_bind.php在 TP6/8 中已不主导子域名绑定,它主要用于单应用下的“域名→模块”映射。多应用场景下请勿依赖它,否则容易走弯路- HTTPS 和带
www的域名需要单独处理。www.example.com与example.com是两个不同的 Host,需要分别绑定,或者用*统一兜底 - 泛域名(如
*.example.com)需要 DNS 泛解析加上 Web 服务器支持。框架层仅靠Route::domain('*')不足以支撑全部场景,复杂业务建议配合中间件做动态解析 - 如果使用中间件做子域名预处理(比如提取商户名),务必把它放在
app/middleware.php全局队列的最前面,确保在路由匹配前执行。顺序搞错了,功能就失效了
从实际项目经验来看,大部分配置失败都集中在第三步——Web服务器没有正确传递Host头。而第一步的多应用结构问题相对较少,但一旦出问题排查起来也相当耗时。建议按顺序逐步验证,每完成一步就用实际域名测试一下,这样能快速定位问题所在。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















