我正在尝试在我的网站上进行维护模式,我想放一个只有管理员才能看到的按钮来打开/关闭维护模式。
这允许管理员继续看到网络但其他访问者没有。
我已经阅读了有关catchAllRequest的信息,创建了一个文件并在必要时重命名,但我无法使其正常工作。
我尝试过underconstruct扩展,但我不知道如何切换ON / OFF。
这就是我现在所拥有的。
控制器:
public function actionIndex()
{
$location = Yii::app()->request->baseUrl.'/protected/config/maintenanceON.txt';
$new = Yii::app()->request->baseUrl.'/protected/config/maintenanceOFF.txt';
Yii::app()->session['secret'] = "password";
rename($location,$new);
$this->renderPartial("index");
}
CONFIG / MAIN.PHP:
'catchAllRequest'=>file_exists(
dirname(__FILE__).'/maintenanceON.txt') &&
!(isset(Yii::app()->session['secret']) && Yii::app()->session['secret']=="password") ?
array('maintenance/index') : null,
谢谢!
答案 0 :(得分:7)
将它放在components / Controller.php中:
public function beforeAction() {
if(Yii::app()->params['maintenance'] == true && Yii::app()->user->id != 1) {
throw new CHttpException(404, 'Under Maintenance');
}
}
将它放在config / main.php中:
'params' => array(
'maintenance' => true,
),