> 在TP6中如果采用了多應(yīng)用模式,每個(gè)應(yīng)用的路由定義和匹配都是獨(dú)立的 應(yīng)用路由都在 `app/應(yīng)用/route` 目錄下定義,應(yīng)用路由定義文件示例如下: ``` app/index/route/web.php app/index/route/api.php app/admin/route/web.php ``` > 特別注意:好好體會(huì)這句話 ``` 應(yīng)用的路由規(guī)則其實(shí)是定義的入口文件(或者應(yīng)用名)后面的URL部分,而不包含應(yīng)用。 ``` 控制器方法默認(rèn)訪問方式(pathinfo):/應(yīng)用/控制器/方法 應(yīng)用路由定義的只是應(yīng)用后面的部分:也就是簡化的是 `控制器/方法` > 舉例:應(yīng)用路由只能定義應(yīng)用名后面的部分,應(yīng)用名未能做簡化 **創(chuàng)建文章控制器** ```php <?php namespace app\index\controller; class Article { public function detail($id) { return '文章id: ' . $id; } } ``` **創(chuàng)建index應(yīng)用路由定義文件:`app/index/route/web.php`** ```php <?php // index應(yīng)用路由定義文件 use think\facade\Route; Route::get('art/:id', 'article/detail'); ``` ``` /index/article/detail/id/1 定義成為 /index/art/1 ``` **使用路由訪問** ![](https://img.itqaq.com/art/content/138cc0c8325f2128d48390aff277dc07.png) > 隱藏路由中的應(yīng)用名 **方案一:入口文件綁定應(yīng)用** 修改入口文件 `public/index.php`,將以下內(nèi)容 ``` $response = $http->run(); ``` 修改為(添加name方法使其綁定到指定的應(yīng)用) ``` $response = $http->name('index')->run(); ``` 此時(shí)路由中必須省略應(yīng)用名:`art/12` ![](https://img.itqaq.com/art/content/9cc60de87007cb4bcd4acb75ace5a25f.png) **方案二:子域名綁定應(yīng)用** 1、配置`hosts`:`C:\Windows\System32\drivers\etc\hosts` ```php 127.0.0.1 tp6.cy 127.0.0.1 liang.tp6.cy ``` 2、apache 虛擬主機(jī)配置文件,先保證兩個(gè)域名都能訪問當(dāng)前項(xiàng)目 ```php <VirtualHost *:80> DocumentRoot "E:\www\thinkphp\tp6\public" ServerName tp6.cy ServerAlias liang.tp6.cy </VirtualHost> ``` 3、修改配置文件:`config/app.php`,添加`域名綁定` + 鍵名:liang 代表當(dāng)前域名的二級域名前綴,即 `liang.tp6.cy` + 鍵值:index 代表應(yīng)用名 + 以下配置作用:將二級域名 `liang.tp6.cy` 綁定到 `index應(yīng)用` ```php 'domain_bind' => [ 'liang' => 'index' ], ``` ![](https://img.itqaq.com/art/content/a3666e845e16aa500f646f5fe9fdf984.png)