ThinkPHP6路由默认值配置失败主因是请求未进入路由匹配环节,需确认app_route开关启用、路由写入app/route/app.php正确路径、执行php think route:clear清缓存,并避免被前置通配路由覆盖。

ThinkPHP6 路由默认值配置失败,通常不是“没写对”,而是请求压根没走到路由匹配环节,或配置被覆盖、缓存未更新、路径错位。核心要确认三点:是否启用路由开关、是否写在正确文件、是否清除了缓存。
检查路由功能是否真正开启
TP6 默认关闭路由,即使写了规则也无效。必须确认:
-
config/app.php 中存在
'app_route' => true,且是布尔值true(不能是字符串"true"或数字1) - 多应用模式下(如
app/admin/),对应子应用的config/app.php也要单独设该开关 - 执行
php think route:clear清除路由缓存,否则修改不生效
确认默认路由写在正确位置
默认控制器或首页路由必须显式定义,且不能依赖全局参数兜底:
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
- 首页访问
/出现 404?在 app/route/app.php 末尾加:Route::get('/', 'Index/index'); - 不要把路由规则写进
config/route.php—— 它只管行为开关(如url_html_suffix),不承载路由映射 - 多应用项目务必写到
app/{name}/route/app.php,例如后台路由应写在app/admin/route/app.php
避免默认值被通配路由覆盖
一个宽泛的兜底路由会吃掉所有请求,导致默认规则失效:
立即学习“PHP免费学习笔记(深入)”;
- 检查是否有类似
Route::any('{id}', ...)或Route::fallback(...)这类无约束路由写在默认路由之前 - 资源路由
Route::resource('user', 'User')若注册在通配路由之后,也会永远不生效 - 临时注释掉其他路由,仅保留默认规则测试,可快速定位是否被覆盖
区分「路由未匹配」和「Web服务器404」
看到纯白页或 Nginx/Apache 原生 404 提示,说明请求根本没进 TP6:
- 确认
public/是 Web 服务器根目录,不是整个项目根目录 - Nginx 需配置
try_files $uri $uri/ /index.php?$query_string; - Apache 需启用
.htaccess(AllowOverride All),且public/.htaccess存在且有效


















