[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
- 快捷键
- 自定义
- 其它插件