Всем привет. Предыстория. Был урл:
/cat/subcat/1/101
Заказчик сказал, что нужно поменять на:
/cat/1/subcat
Написал роут:
[
'pattern' => 'cat/<cat_id:\d+>/subcat',
'route' => 'cat/subcat',
'suffix' => '/',
],
Поправил где нужно ссылки, стало все нормально. Но теперь стоит задача сделать со старого урла редирект на новый.
То есть с /cat/subcat/1/101 => 301 на /cat/1/subcat
Написал проверку если есть второй параметр, то редиректить:
public function beforeAction($action)
{
$subcatId = \Yii::$app->request->getQueryParam('subcat_id');
$catId = \Yii::$app->request->getQueryParam('cat_id');
if (!empty($subcatId)) {
\Yii::$app->response->redirect([Url::to(["/category/$catId/tables/"])], 301);
}
return parent::beforeAction($action);
}
Но редиректить на:
/cat/subcat/1
А нужно на:
/cat/1/subcat
Что я делаю не так? Подскажите пожалуйста.