第一步:执行指令安装多应用模式功能;
composer require topthink/think-multi-app
第二步:删除app目录下的所有文件,创建应用目录;
php think build 应用名称
第三步:配置默认应用,修改config/app.php,添加以下配置;
// 设置默认应用名称 'default_app' => 'home', // 开启自动多模式 'auto_multi_app' => true, // 开启应用快速访问 'app_express' => false,
第四步:配置隐藏入口文件,修改nginx配置***.conf;
(注意:如果没有设置这一步,就必须带上入口文件,并且可能需要带上参数s,例如:http://servername/index.php?s=admin)
location / { try_files $uri $uri/ /index.php?$query_string; index index.html index.htm index.php; autoindex on; if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } }
到这一步,基本上可以正常访问了,访问路由:http://servername/应用名称/控制器/方法。
也可以通过设置好的路由进行访问,但是必须指明应用名称,例如:http://servername/应用名称/route。
如果不希望将应用名称显示出来,可以通过修改配置config/app.php来达到隐藏真实应用名称的目的:
第一种方法:应用映射。
通过映射方法取代真实的应用名称(修改配置文件config/app.php):
// 应用映射(自动多应用模式有效) 'app_map' => [ 'test' => 'admin' ],
原本的路由:http://servername/admin/index/index,使用映射后,原路由将无法访问,必须通过:http://servername/test/index/index来访问。
第二种方法:域名绑定。
首先,需要有一个正常访问的域名(admin-payment.com),如果本地,可以自定义域名;
然后,将域名根目录执行项目的public目录,并且可以正常访问;
最后,修改配置config/app.php。
// 域名绑定(自动多应用模式有效) 'domain_bind' => [ 'admin-payment.com' => 'admin' ],
这样,访问http://admin-payment.com就相当于访问http://servername/admin。