# 多站點配置
推薦使用單入口文件方式實現多站點配置, 通過域名前綴區分不同站點
入口文件`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();
~~~
> 若不想通過域名區分站點, 或沒有多個子域名的條件, 請參考[多入口文件](http://www.hmoore.net/evanlee/sphp/3183860)的配置方式
>
- 序言
- 下載及安裝
- 目錄結構
- 基礎
- 多站點-單入口文件(推薦)
- (舊)多站點-多入口文件方式
- (舊)入口文件
- (舊)站點配置
- 按鈕操作
- 區塊概念
- 構建器(SBuilder)
- 頁面-Page
- 設置頁面標題
- 添加頁面提示信息
- 設置頁面Tab
- 設置頁面背景色
- 設置是否點擊遮罩關閉
- 添加區塊
- 區塊-Block
- 設置區塊名
- 設置區塊布局
- 表單(form)
- 添加表單項通用方法
- 添加表單項
- 單行文本框
- 多行文本框
- 數字輸入框
- 密碼框
- 數組輸入框
- 單選框
- 狀態選擇器
- 復選框
- 下拉框
- 級聯選擇器
- 開關
- 日期選擇器
- 日期時間選擇器
- 日期范圍選擇器
- 日期時間范圍選擇器
- 時間選擇器
- 時間范圍選擇器
- Tree 樹形組件
- 圖標選擇器
- 顏色選擇器
- 單圖片上傳
- 多圖片上傳
- 視頻上傳
- 單文件上傳
- 多文件上傳
- 富文本編輯器-QEditor
- 富文本編輯器-UEditor
- 小程序富文本
- 靜態文本
- 隱藏表單項
- 表格數據輸入框
- 分組
- 地圖選擇器(未實現)
- 地區選擇器(未實現)
- 穿梭框(未實現)
- 圖片裁剪(未實現)
- 郵箱輸入框(未實現)
- 設置表單LabelWidth
- 設置表單提交地址
- 設置默認按鈕標題
- 提交表單確認框
- 隱藏默認按鈕
- 添加額外按鈕
- 設置觸發器
- 設置表單數據
- 表單布局
- 模板
- 表格(table)
- 設置表名
- 添加頂部按鈕
- 添加時間段篩選
- 設置搜索欄
- 添加列
- text
- byte
- status
- tags
- yesno
- datetime
- icon
- image
- images
- external_image[已廢棄]
- external_images[已廢棄]
- link
- html
- select
- text.edit
- group
- 多選框欄
- 數量索引欄
- 操作欄
- 右側操作按鈕
- 設置多選框
- 設置顯示數量索引
- 設置列表數據地址
- 直接設置數據
- 關閉ajax獲取數據功能
- 設置分頁
- 自動新增
- 自動編輯
- 圖表(Charts)
- Html
- Iframe
- 數據面板
- 卡片列表
- 按鈕(Button)
- 按鈕調用示例
- 自定義組件
- 混合頁面
- 概念說明
- 擴展
- 圖標擴展
- 雜項
- 幫助函數
- TODO