Задать вопрос
msplatona
@msplatona

301 Редирект 404 страниц на nginx, фреймворк yii будет ли работать?

Всем здравствуйте , подскажите будет ли работать правило для 301 редиректа?
Нужно склеить страницы выдающие 404 ошибку с имеющимися

if (isset($get['page']) && isset($get['number']) && isset($get['brand']) && 'goods_info' == $get ['page'] {
Yii::$app->response->redirect(['/catalog/', 'slug' => Inflector::slug(Inflector::transliterate($get['number'] . '-' . $get['brand']))], 301);
return;
}

// SITE.ru/goods_info?brand=NISSAN&number=A6860EC09A эта страница выдает ошибку 404
// SITE.ru/catalog/a6860ec09a-nissan.html эта страница существует , на нее нужно перенаправить ошибочную страницу
  • Вопрос задан
  • 226 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Toey
Вам надо сделать чтоб все запросы типа "SITE.ru/goods_info?brand=NISSAN&number=A6860EC09A " попадали в actionGoodsInfoRedirect (например) и в этом action писать ваш redirtect 301

в config Yii
'urlManager'=>array(
            //... ваши правила
	   'rules'=>array(
                'goods_info'=>'site/goodsInfoRedirect',
           ),
),


в контролер SiteController.php добавляем action
public function actionGoodsInfoRedirect(){
        if (isset($get['number']) && isset($get['brand']) ) {
Yii::$app->response->redirect(['/catalog/', 'slug' => Inflector::slug(Inflector::transliterate($get['number'] . '-' . $get['brand']))], 301);
return;
}
    }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы