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

posted @ 2019-12-19 11:50  飘柔2019  阅读(4064)  评论(0编辑  收藏  举报