多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 多站点配置 推荐使用单入口文件方式实现多站点配置, 通过域名前缀区分不同站点 入口文件`index.php`中添加站点配置 ~~~ // 修改admin端控制器层目录 if(strpos($_SERVER['HTTP_HOST'], 'admin') === 0 ) { // 定义站点名 define('SITE_NAME', 'admin'); // 定义控制器层目录,若不定义则默认使用站点名作为目录名 define('URL_CONTROLLER_LAYER', 'admin'); }else if(strpos($_SERVER['HTTP_HOST'], 'api') === 0 ) { // 修改api端控制器层目录 // 定义站点名 define('SITE_NAME', 'api'); // 定义控制器层目录,若不定义则默认使用站点名作为目录名 define('URL_CONTROLLER_LAYER', 'api'); }else { // 定义站点名 define('SITE_NAME', 'default'); // 定义控制器层目录,若不定义则默认使用站点名作为目录名 define('URL_CONTROLLER_LAYER', 'controller'); } ~~~ > 此种配置方式简单, 遵循thinkphp单入口文件规范, 不需要额外修改nginx或apache配置即可完成多站点支持. 完整的入口文件示例: ~~~ <?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2006-2018 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: liu21st <liu21st@gmail.com> // +---------------------------------------------------------------------- // [ 应用入口文件 ] namespace think; // 加载基础文件 require __DIR__ . '/../thinkphp/base.php'; // 修改admin端控制器层目录 if(strpos($_SERVER['HTTP_HOST'], 'admin') === 0 ) { // 定义站点名 define('SITE_NAME', 'admin'); // 定义控制器层目录,若不定义则默认使用站点名作为目录名 define('URL_CONTROLLER_LAYER', 'admin'); }else if(strpos($_SERVER['HTTP_HOST'], 'api') === 0 ) { // 修改api端控制器层目录 // 定义站点名 define('SITE_NAME', 'api'); // 定义控制器层目录,若不定义则默认使用站点名作为目录名 define('URL_CONTROLLER_LAYER', 'api'); }else { // 定义站点名 define('SITE_NAME', 'default'); // 定义控制器层目录,若不定义则默认使用站点名作为目录名 define('URL_CONTROLLER_LAYER', 'controller'); } // 支持事先使用静态方法设置Request对象和Config对象 // 执行应用并响应 Container::get('app')->run()->send(); ~~~ > 若不想通过域名区分站点, 或没有多个子域名的条件, 请参考[多入口文件](https://www.kancloud.cn/evanlee/sphp/3183860)的配置方式 >