我想在开发环境中通过IP限制错误页面。
在站点控制器中,我尝试添加访问规则,但这似乎不适用于error
这样的操作:
[
'actions' => ['error'],
'allow' => true,
'roles' => ['?'],
'ips' => ['my-ip'],
],
答案 0 :(得分:0)
不建议您设置错误页面的访问权限。当未经许可的用户有错误时,这将给出另一条提示消息,该消息无权访问错误页面。提示也不友好。
如果您的目标是为不同的ip显示不同级别的错误页面,则可以覆盖\ yii \ web \ ErrorAction为不同的特权用户显示不同的错误页面,例如:
class MyErrorAction extends \yii\web\ErrorAction {
public function run()
{
if ('ip1' === \Yii::$app->request->userIP) {
return $this->renderHtml1();
}
if ('ip2' === \Yii::$app->request->userIP) {
return $this->renderHtml2();
}
return $this->renderDefaultHtml();
}
}
然后在项目的配置文件中,将errorHandler的errorAction配置为MyErrorAction,例如:
[
'components' => [
'errorHandler' => [
'errorAction' => MyErrorAction::class
],
],
]
或者您可以重写\ yii \ web \ ErrorHandle :: renderException()方法来控制演示文稿的内容,并将配置文件中的errorHandle配置为MyErrorHandler
此答案是从Google翻译翻译而来的