[TOC]
#### 1.在config 頭加上domain信息
~~~
$host = explode('.', $_SERVER["HTTP_HOST"]);
if (count($host) > 2) {
define('DOMAIN', $host[1] . '.' . $host[2]);
} else {
define('DOMAIN', $host[0] . '.' . $host[1]);
}
define('DOMAIN_WWW', 'www.' . DOMAIN);
define('DOMAIN_ADMIN', 'admin.' . DOMAIN);
~~~
#### 2.配置config里的urlManager
~~~
'urlManager' => [
'class' => 'common\components\MutilpleDomainUrlManager',
'domains' => [
'www' => '//' . DOMAIN_WWW,
'admin' => '//' . DOMAIN_ADMIN,
],
'showScriptName' => false,
'enablePrettyUrl' => true,
],
~~~
#### 3.創建MutilpleDomainUrlManager
~~~
namespace common\components;
use Yii;
class MutilpleDomainUrlManager extends \yii\web\UrlManager
{
public $domains = array();
public function createUrl($domain, $params = array()) {
if (func_num_args() === 1) {
$params = $domain;
$domain = false;
}
$bak = $this->getBaseUrl();
if ($domain) {
if (!isset($this->domains[$domain])) {
throw new \yii\base\InvalidConfigException('Please configure UrlManager of domain "' . $domain . '".');
}
$this->setBaseUrl($this->domains[$domain]);
}
$url = parent::createUrl($params);
$this->setBaseUrl($bak);
return $url;
}
}
~~~
#### 4.代碼測試
~~~
Yii::$app->urlManager->createUrl('site/index'), # /site/index
Yii::$app->urlManager->createUrl('admin', 'site/login'), # admin.xxx.com/site/login
Yii::$app->urlManager->createUrl('www', 'user/view'), # www.xxx.com/user/view
~~~
- 基礎教程
- 入門安裝
- Yii2 composer 安裝慢解決
- Cookies
- 數據庫操作
- 數據提供者
- 助手類
- 驗證規則
- GridView
- DetailView
- YII2分頁
- JS、CSS的引用
- Excel導出
- 中文轉拼音
- 發送郵件
- 第三方插件
- Session跨域共享
- Url跨域訪問
- 場景應用
- 查詢條件鏈
- Session分布式共享
- Redis的使用
- mongodb
- 高級教程
- 自定義gii模板
- 角色權限管理(RBAC)
- user組件的配置
- 國際化(I18N)
- 小部件(Widget)
- 模塊(Module)
- 行為(Behavior)
- 緩存(Cache)
- migrate 數據庫遷移
- phpstorm
- 快捷鍵
- 自定義
- 其它插件