如果是一个网站还好分出两个域名管理还能接受,如果开发的站点过多。那么会导致管理后台的域名也会有对应一个,如果有十个那么后端域名也会有对应十个!那这样就太泛了。所以我们必须改造Yii2高级模板使用一个域名。
一开始也在网上找了很多,大部分都是修改伪静态规则来实现的。
其实有更好方法。
在frontend的web下新建一个manage目录用来放后端index.php:
manage下index.php修改如下:
<?php defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev'); define('MANAGE', 'manage'); require __DIR__ . '/../../../vendor/autoload.php'; require __DIR__ . '/../../../vendor/yiisoft/yii2/Yii.php'; require __DIR__ . '/../../../common/config/bootstrap.php'; require __DIR__ . '/../../../backend/config/bootstrap.php'; $config = yii\helpers\ArrayHelper::merge( require __DIR__ . '/../../../common/config/main.php', require __DIR__ . '/../../../common/config/main-local.php', require __DIR__ . '/../../../backend/config/main.php', require __DIR__ . '/../../../backend/config/main-local.php' ); (new yii\web\Application($config))->run();
这样请求http://www.apizl.com/manage/index.php 那么就会访问后端控制器,在转跳中使用内置\yii\helpers\Url::to()生成链接
如下:
<?php echo \yii\helpers\Url::to(['/manage/manage-add']); ?> //生成如下链接:/manage/index.php?r=manage%2Fmanage-add
那么还要关闭后端静态:
'urlManager' => [ 'enablePrettyUrl' => false, 'showScriptName' => false, 'rules' => [ ], ],
这样简单的改造就完成了,是不是很简单。
关键字词: