ThinkPHP6.0多应用路由规则
如果要使用多应用模式,你需要安装多应用模式扩展think-multi-app。
composer require topthink/think-multi-app
1
多应用目录结构如下:
├─app 应用目录 │ ├─index 主应用 │ │ ├─controller 控制器目录 │ │ ├─model 模型目录 │ │ ├─view 视图目录 │ │ ├─config 配置目录 │ │ ├─route 路由目录 │ │ └─ ... 更多类库目录 │ │ │ ├─admin 后台应用 │ │ ├─controller 控制器目录 │ │ │ ├─Index.php 控制器类 │ │ ├─model 模型目录 │ │ ├─view 视图目录 │ │ ├─config 配置目录 │ │ ├─route 路由目录 │ │ │ ├─route.php 路由定义文件 │ │ └─ ... 更多类库目录 │ ├─public WEB目录(对外访问目录) │ ├─admin.php 后台入口文件 │ ├─index.php 入口文件 │ ├─router.php 快速测试文件 │ └─.htaccess 用于apache的重写 │ ├─config 全局应用配置目录 ├─route 路由定义目录
当为多应用时,路由文件变到了对应应用下的route目录了,这个时候如果需要访问admin应用Index.php控制器下面的方法,访问路径应该为:
http://localhost/public/index.php/admin/Index/index
http://域名/public/入口文件/应用目录/控制器类/方法
可以通过新增入口文件,并指定应用目录,可以隐藏URL中应用目录,在public下新增admin.php文件,文件内容如下:
<?php // [ 应用入口文件 ] namespace think; require __DIR__ . '/../vendor/autoload.php'; // 执行HTTP应用并响应 $http = (new App())->http; // 指定应用目录为admin $response = $http->name('admin')->run(); $response->send(); $http->end($response);
现在再访问admin应用Index.php控制器下面的方法,访问路径应该为:
http://localhost/public/admin.php/Index/index
http://域名/public/入口文件/控制器类/方法
1
2
再在admin应用目录下的route目录添加路由文件
<?php use think\facade\Route; Route::get('test', 'Index/index');
现在再访问admin应用Index.php控制器下面的方法,访问路径应该为:
http://localhost/public/admin.php/test http://域名/public/入口文件/路由表达式
原文链接:https://blog.csdn.net/xiuliyan6124/article/details/103065406