ThinkPHP6.0多应用路由规则

如果要使用多应用模式,你需要安装多应用模式扩展think-multi-app。

composer require topthink/think-multi-app

多应用目录结构如下:

├─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文件,文件内容如下:



// [ 应用入口文件 ]
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/入口文件/控制器类/方法

再在admin应用目录下的route目录添加路由文件



use think\facade\Route;

Route::get('test', 'Index/index');

现在再访问admin应用Index.php控制器下面的方法,访问路径应该为:

http://localhost/public/admin.php/test
http://域名/public/入口文件/路由表达式

你可能感兴趣的:(php)