// +---------------------------------------------------------------------- use think\facade\Route; // 支持批量添加 Route::pattern([ 'name' => '\w+', 'id' => '\d+', ]); // 一级控制器版本化 API(/api/v1/...、/api/v2/...) // // 插件路由(/<插件>/backend、/<插件>/developer、/<插件>/api 等)统一由 // 主应用 ywxapp/service/AppService::loadAddonRoutes() 在 boot 阶段注册, // 本文件【不再】引入插件 route/app.php——否则 think-multi-app 会把 api 当作 // 应用名截走并叠加前缀,导致 /api/<插件>/* 或 /api/api/* 恒 404。 // 跨域【不要】在这里再挂 \think\middleware\AllowCrossDomain: // 它固定回显任意 Origin 并附带 Access-Control-Allow-Credentials: true, // 与外层应用中间件 ywxapp\middleware\CrossDomain(按 config/cors.php 分层白名单)重复输出, // 甚至会拼出「Access-Control-Allow-Origin: * + credentials」的非法组合(浏览器直接拒绝跨域)。 // 跨域统一由 app/api/middleware.php 注册的 CrossDomain 负责。 Route::group(':version', function () { Route::rule(':Controller/:action', ':version.:Controller/:action'); })->pattern([ 'version' => 'v\d+', // 匹配 v1/v2/v3... ]);