Вы можете переопределить ErrorAction class и реализует необходимую логику.Например:
class MyErrorAction extends \yii\web\ErrorAction
{
public $redirectRoute;
public function run()
{
if (!Yii::$app->getRequest()->getIsAjax()) {
Yii::$app->getResponse()->redirect($this->redirectRoute)->send();
return;
}
return parent::run();
}
}
После этого вы должны добавить это действие в контроллер и настроить его
class SiteController
{
public function actions()
{
return [
'error' => [
'class' => MyErrorAction::class
'redirectRoute' => 'site/my-page'
],
];
}
}
и настроить маршрут действия ошибки вобработчик ошибок
'errorHandler' => [
'errorAction' => 'site/error',
]