TP6默认路由文件是route/app.php,而非application/route.php或根目录route.php;多应用路由应放route/admin.php等同级文件,非app/admin/route.php。

route.php 文件位置取决于 ThinkPHP 版本和项目结构,但 TP6 默认不使用 route.php 作为主路由文件 —— 这是很多老用户迁移时最容易踩的坑。
TP6 的路由文件默认在 route/app.php
- ThinkPHP 6.0 起,路由配置统一收口到
route/目录下,不再读取application/route.php或根目录下的route.php - 框架启动时自动加载
route/app.php(这是主路由入口) - 你也可以新建
route/admin.php、route/api.php等,只要放在route/目录下,都会被自动扫描并加载
为什么你可能找不到 route.php?
- 如果你在
application/下翻找route.php,大概率是 TP5 遗留习惯 —— TP6 已移除该路径支持 - 如果项目是从 TP5 升级而来,旧的
application/route.php不会被自动识别,必须手动迁移到route/app.php - 某些模板或脚手架生成的项目可能删掉了
route/目录,此时需要手动创建:
mkdir route touch route/app.php
并在 route/app.php 中写入基础路由注册逻辑:
<?php
use think\facade\Route;
Route::get('hello', 'index/hello');多应用模式下,模块专属路由放哪?
-
app/admin/route.php:TP5 风格,TP6 不生效 - 正确位置是:
route/admin.php(与route/app.php平级) - 框架会按文件名自动识别为「admin」分组路由,并绑定到对应应用(需配合
config/app.php中的app_multi和应用定义)
关键点就一个:TP6 的路由中枢是 route/ 目录,不是 application/;route.php 这个名字本身已无特殊地位,哪怕你放一个 route/xxx.php,它也会被加载 —— 但内容必须符合 TP6 的 Route::xxx() 语法,且不能依赖 TP5 的全局函数式写法。



















