Thinkphp6在多应用的情况下缩短路由(隐藏默认应用名称)

Thinkphp6在多应用的情况下缩短路由(隐藏默认应用名称)
Thinkphp6在多应用的情况下,正常的路由应该是:
http://www.xx.com/应用名称/控制器/方法名
如:
http://www.xx.com/admin/index/myaction
但如果想改为短的(即:隐藏默认应用名称,或缩短路由的长度),如:
http://www.xx.com/admin/index/myaction

http://www.xx.com/myaction

然后 config\app.php 设置
‘with_route’ => true,
‘default_app’ => ‘index’,

设置index应用下的路由定义 app\index\route\home.php(文件名随意,即:可以是home.php,也可以是app.php)下:


use think\facade\Route;
Route::get('farm',       'home/index/farm');

最重要是,修改入口文件 public\index.php,将:
$response = $http->run();
修改为:

// 特殊路由
$_amain = 'home';
$_aother = 'admin|backend|demo|common'; // 这里是除了home以外的所有其他应用
if (preg_match('/^\/('.$_aother.')\/?/', $_SERVER['REQUEST_URI'])) {
    $response = $http->run();
} else {
    $response = $http->name($_amain)->run();
}

http://www.xx.com/myaction

你可能感兴趣的:(php,服务器,前端)