Решение:
1. Создать класс компонента, нп. RedirectComponent, унаследовать его от \yii\base\Component
2. В frontend\config\main.php прописать этот класс в компонентах и бутстрапе, пример:
<?php
$params = array_merge(
require(__DIR__ . '/../../common/config/params.php'),
require(__DIR__ . '/../../common/config/params-local.php'),
require(__DIR__ . '/params.php'),
require(__DIR__ . '/params-local.php')
);
return [
'id' => 'app-frontend',
'basePath' => dirname(__DIR__),
'homeUrl' => '/',
'bootstrap' => ['RedirectComponent','log'],
'controllerNamespace' => 'frontend\controllers',
'components' => [
/* */
'RedirectComponent' => [
'class'=>'frontend\components\RedirectComponent',
],
],
'params' => $params,
];
3. В классе RedirectComponent написать метод c редиректами:
public function init()
{
/*redirect logic*/
}
У меня не получилось создавать редирект через динамический контроллер и экшн, использовала редирект через header().