##?php
namespace frontend\controllers\base;
use common\components\SubDomainHelper;
use common\helpers\EcHelper;
use common\models\Region;
use common\models\SubdomainExclude;
use frontend\components\CurrentRegion;
use frontend\dto\layouts\header\HeaderDto;
use frontend\dto\layouts\footer\FooterDto;
use frontend\helpers\layouts\LayoutHelper;
use Yii;
use yii\web\Controller;
use yii\web\Cookie;
/**
* Базовый контроллер для фронта
*
* @property ?Region $region
* @property CurrentRegion $currentRegion
* @property HeaderDto $headerDto
* @property FooterDto $footerDto
* @property bool $fullWidth
*/
abstract class BaseController extends Controller
{
public ?Region $region = null;
public CurrentRegion $currentRegion;
public HeaderDto $headerDto;
public FooterDto $footerDto;
public bool $fullWidth = false;
public string $yandexCaptchaKey;
public bool $isTransparent = false;
public function init()
{
/*
$ip = \Yii::$app->request->userIP; # var_dump($ip); exit();
$isRu = \Yii::$app->geoIp->isIpFromRussia($ip);
if (!$isRu) {
$message = '
Здравствуйте! Спасибо за визит на наш сайт moon.ru. Если вы видите это сообщение, возможно, ваш доступ осуществляется за пределами территории Российской Федерации, либо у вас активирован VPN. Пожалуйста, проверьте настройки подключения и обновите страницу для корректной работы сайта. |
';
\Yii::$app->response->statusCode = 500;
\Yii::$app->response->content = $message;
\Yii::$app->response->send();
\Yii::$app->end();
}
*/
parent::init();
$this->checkRedirects();
$this->currentRegion = Yii::$app->currentRegion;
$helper = Yii::$container->get(LayoutHelper::class);
$this->headerDto = $helper->getHeaderDto();
$this->footerDto = $helper->getFooterDto();
$this->yandexCaptchaKey = Yii::$app->params['yandexCaptcha']['clientKey'];
// Сохранение UTM меток
$this->saveUTM();
// Сохранение меток Admitad
$this->saveAdmitad();
// Открытие сессии
Yii::$app->session->open();
EcHelper::setUserCookies(
Yii::$app->session->Id,
EcHelper::USER_DEFAULT_ROLE,
'',
$this->currentRegion->region->capital_name ?? ''
);
if (YII_ENV === 'prod') {
$this->checkMainPageSlashes();
$this->seoRedirect();
}
}
/**
* Если существует id Admitad записать его в куки
*/
protected function saveAdmitad(): void
{
$cookies = Yii::$app->response->cookies;
$admitadUid = Yii::$app->request->get('admitad_uid');
if ($admitadUid !== null) {
$cookies->add(new Cookie([
'name' => 'admitad_uid',
'value' => $admitadUid,
]));
}
}
/**
* Сохранение UTM меток в cookie
*/
protected function saveUTM(): void
{
$cookies = Yii::$app->response->cookies;
$utmSource = Yii::$app->request->get('utm_source');
if ($utmSource !== null) {
$cookies->add(new Cookie([
'name' => 'utm_source',
'value' => $utmSource,
]));
}
$utmMedium = Yii::$app->request->get('utm_medium');
if ($utmMedium !== null) {
$cookies->add(new Cookie([
'name' => 'utm_medium',
'value' => $utmMedium,
]));
}
$utmCampaign = Yii::$app->request->get('utm_campaign');
if ($utmCampaign !== null) {
$cookies->add(new Cookie([
'name' => 'utm_campaign',
'value' => $utmCampaign,
]));
}
}
/**
* Редирект 301 на главную страницу, если поддомена нет в списке разрешённых
*/
protected function seoRedirect(): void
{
$domainSplit = SubDomainHelper::getSubDomain();
// Если есть поддомен
if ($domainSplit) {
$subDomainExists = SubdomainExclude::getSubDomainExists($domainSplit);
if ($subDomainExists !== -1) {
// Если домен не найден в исключениях, то 301 редирект
if ($subDomainExists === 0) {
header('HTTP/1.1 301 Moved Permanently');
header('Location: https://www.' . strtolower(Yii::$app->name));
exit();
}
}
}
}
/**
* Если слэшей >= 2, то редирект на страницу без слэшей
*/
public function checkMainPageSlashes(): void
{
$currentUrl = (empty($_SERVER['HTTPS']) ? 'http' : 'https') . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$newUrl = str_replace(':/', '://', trim(preg_replace('/\/+/', '/', $currentUrl), '/'));
$redirectTo = 'Location: ' . $newUrl;
if (preg_match('/\/{2,}$/', $currentUrl) === 1) {
header('HTTP/1.1 301 Moved Permanently');
header($redirectTo);
exit();
}
}
private function checkRedirects()
{
$arr = [
'/catalog/banketki-moon' => '/catalog/banketki',
'/catalog/detskie' => '/',
'/catalog/detskie-podushki-odeyala' => '/',
'/catalog/detskie-tovary' => '/',
'/catalog/divany-akkordeon-baron' => '/catalog/divany-akkordeon',
'/catalog/divany-amsterdam' => '/catalog/divany',
'/catalog/divany-atlanta' => '/catalog/divany',
'/catalog/divany-atlanta-ekokozha' => '/catalog/divany',
'/catalog/divany-atlanta-tkanevye' => '/catalog/divany-tkanevye',
'/catalog/divany-baron' => '/catalog/divany',
'/catalog/divany-barselona' => '/catalog/divany',
'/catalog/divany-boston' => '/catalog/divany',
'/catalog/divany-dallas' => '/catalog/divany',
'/catalog/divany-dublin' => '/catalog/divany',
'/catalog/divany-evroknizhka-amsterdam' => '/catalog/divany-evroknizhka',
'/catalog/divany-evroknizhka-atlanta' => '/catalog/divany-evroknizhka',
'/catalog/divany-evroknizhka-dublin' => '/catalog/divany-evroknizhka',
'/catalog/divany-evroknizhka-tokio' => '/catalog/divany-evroknizhka',
'/catalog/divany-evroknizhka-turin' => '/catalog/divany-evroknizhka',
'/catalog/divany-gamburg' => '/catalog/divany',
'/catalog/divany-karina' => '/catalog/divany',
'/catalog/divany-klik-klak-zhakkard' => '/catalog/divany',
'/catalog/divany-korichnevye-ehkokozha' => '/catalog/divany',
'/catalog/divany-marsel' => '/catalog/divany',
'/catalog/divany-moon' => '/catalog/divany',
'/catalog/divany-moon-akkordeon' => '/catalog/divany-akkordeon',
'/catalog/divany-moon-delfin' => '/catalog/divany',
'/catalog/divany-moon-evroknizhka' => '/catalog/divany-evroknizhka',
'/catalog/divany-moon-lit' => '/catalog/divany',
'/catalog/divany-moon-pryamye' => '/catalog/divany-pryamye',
'/catalog/divany-moon-uglovye' => '/catalog/divany-uglovye',
'/catalog/divany-na-nozhkah' => '/catalog/divany',
'/catalog/divany-nedorogo' => '/catalog/divany',
'/catalog/divany-parma' => '/catalog/divany',
'/catalog/divany-pryamye-amsterdam' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-atlanta' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-bakkara' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-baron' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-boston' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-dallas' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-dublin' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-gamburg' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-karina' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-lion' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-madrid' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-marrakesh' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-marsel' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-palermo' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-parma' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-santa-next' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-tokio' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-turin' => '/catalog/divany-pryamye',
'/catalog/divany-s-osnovaniem-iz-berezovyh-lat' => '/catalog/divany',
'/catalog/divany-uglovye-amsterdam' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-atlanta' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-baron' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-boston' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-chester' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-dallas' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-delfin-dublin' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-delfin-gamburg' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-dublin' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-ekokozha' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-gamburg' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-karina' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-malta' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-marsel' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-parma' => '/catalog/divany-uglovye',
'/catalog/divany-vykatnye-boston' => '/catalog/divany',
'/catalog/dvuhyarusnye-krovati' => '/catalog/krovati',
'/catalog/gamaki' => '/',
'/catalog/garden-swing' => '/',
'/catalog/izdeliya-iz-rotanga' => '/',
'/catalog/kacheli' => '/',
'/catalog/kollekcija-flash' => '/',
'/catalog/kollekcija-patio' => '/',
'/catalog/komody' => '/',
'/catalog/komody-dlya-detskoy-komnaty' => '/',
'/catalog/komody-dlya-spalny' => '/',
'/catalog/korpusnaja-mebel' => '/',
'/catalog/krovati-dlya-detskoy-komnaty' => '/catalog/krovati',
'/catalog/krovati-dub-ferara' => '/catalog/krovati',
'/catalog/krovati-dub-kremona' => '/catalog/krovati',
'/catalog/krovati-dub-molochnyi' => '/catalog/krovati',
'/catalog/krovati-moon' => '/catalog/krovati',
'/catalog/krovati-moon-s-mehanizmon' => '/catalog/krovati',
'/catalog/krovati-moon-s-osnovaniem' => '/catalog/krovati',
'/catalog/kuchonnye-ugolki' => '/',
'/catalog/kuhni' => '/',
'/catalog/kuhni-nedorogie' => '/',
'/catalog/kuhni-pryamye' => '/',
'/catalog/kuhni-uglovye' => '/',
'/catalog/kukhonnye-aksessuary' => '/',
'/catalog/kupe-photoprint' => '/',
'/catalog/matrasy-dvuspalnye-nedorogo' => '/catalog/matrasy',
'/catalog/matrasy-moon-erid-2VtzqxfJxZm' => '/catalog/matrasy',
'/catalog/mebel-dlja-dachi' => '/',
'/catalog/novinki' => '/',
'/catalog/obuvnicy' => '/',
'/catalog/odnoyarusnye-krovati' => '/catalog/krovati',
'/catalog/osnovanija' => '/',
'/catalog/osnovanija1' => '/',
'/catalog/patio' => '/',
'/catalog/polki' => '/',
'/catalog/pufy-moon-trade' => '/catalog/pufy',
'/catalog/raskladnye-krovati' => '/catalog/krovati',
'/catalog/shkafy' => '/',
'/catalog/shkafy-dlya-detskoy-komnaty' => '/',
'/catalog/shkafy-dlya-spalny' => '/',
'/catalog/shkafy-kupe' => '/',
'/catalog/shkafy-mirror' => '/',
'/catalog/shkafy-navesnye' => '/',
'/catalog/shkafy-penaly' => '/',
'/catalog/shkafy-raspashnye' => '/',
'/catalog/shkafy-vitriny' => '/',
'/catalog/shtory' => '/',
'/catalog/sofas-special-offer-non+' => '/',
'/catalog/spalnie-garnitury' => '/',
'/catalog/stellazhi' => '/',
'/catalog/stenki' => '/',
'/catalog/stojjki-dlja-gamakov' => '/',
'/catalog/stoly-kompjuternye' => '/',
'/catalog/stoly-pismennye' => '/',
'/catalog/tumby-pod-tv' => '/',
'/catalog/tymby-moon' => '/',
'/catalog/uglovye-atlanta' => '/catalog/divany-uglovye',
'/catalog/veshalki' => '/',
'/catalog/zashitnye-chehly-moon' => '/',
'/catalog/zerkala' => '/',
'/catalog/prikhozhie' => '/',
'/catalog/sale-of-sofas' => '/catalog/divany-so-skidkoi',
'/catalog/divany-vykatnye-orangevye' => '/catalog/divany',
'/catalog/divany-vykatnye-ekokozha' => '/catalog/divany',
'/catalog/divany-vykatnye-korichnevye' => '/catalog/divany',
'/catalog/divany-vykatnye-tkanevye' => '/catalog/divany',
'/catalog/divany-uglovye-vykatnye' => '/catalog/divany-uglovye',
'/catalog/divany-vykatnye-zelenye' => '/catalog/divany',
'/catalog/divany-vykatnye-rozovye' => '/catalog/divany',
'/catalog/divany-vykatnye' => '/catalog/divany',
'/catalog/divany-pryamye-vykatnye' => '/catalog/divany',
'/catalog/divany-vykatnye-velurovye' => '/catalog/divany',
'/catalog/divany-vykatnye-bezhevye' => '/catalog/divany',
'/catalog/divany-dlya-detskoy-komnaty' => '/catalog/divany-detskie',
'/catalog/kresla-dlya-otdyha' => '/catalog/kresla-dlja-otdyha',
'/catalog/krovati-osnovanie' => '/catalog/krovati-s-osnovaniem',
'/catalog/Metall-krovati' => '/catalog/krovati-metallicheskie',
'/catalog/namatrasnik' => '/catalog/namatrasniki',
'/catalog/modulnyy-divany' => '/catalog/modulnye-divany',
'/catalog/divany-uglovye-nedorogo' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-delfin-zhakkard' => '/catalog/divany-uglovye',
'/catalog/matrasy-v-skrutke' => '/catalog/matrasy',
'/catalog/podushki-s-effektom-ohlazhdeniya' => '/catalog/podushki',
'/catalog/divany-s-osnovaniem-iz-pruzhinnyh-zmeek' => '/catalog/divany',
'/catalog/divany-zhestkie' => '/catalog/divany',
'/catalog/pododejalniki' => '/',
'/catalog/postelnoe-belye' => '/',
'/catalog/mebel-rotang' => '/',
'/catalog/divany-uglovye-delfin-shenil' => '/catalog/divany-uglovye',
'/catalog/nabory-mebeli' => '/',
'/catalog/divany-uglovye-delfin-eco-kozha' => '/catalog/divany-uglovye',
'/catalog/bed-collection-new' => '/',
'/catalog/podushki-klassicheskie' => '/catalog/podushki',
'/catalog/divany-raskladnye-shenill' => '/catalog/divany-raskladnye',
'/catalog/divany-raskladnye-zhakkard' => '/catalog/divany-raskladnye',
'/catalog/divany-s-osnovaniem-iz-rezinotkanevyh-remnei' => '/catalog/divany',
'/catalog/divany-uglovye-delfin-rogozhka' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-rogozhka' => '/catalog/divany-uglovye',
'/catalog/divany-raskladnye-rozovye' => '/catalog/divany-raskladnye',
'/catalog/matrasy-odnospalnye-nedorogo' => '/catalog/matrasy',
'/catalog/divany-klik-klyak-bezhevye' => '/catalog/divany',
'/catalog/kresla-glider' => '/catalog/kresla',
'/catalog/divany-klik-klyak-dlina-200' => '/catalog/divany',
'/catalog/divany-vysokie' => '/catalog/divany',
'/catalog/divany-s-ottomankoi' => '/catalog/divany',
'/catalog/prostyni' => '/',
'/catalog/krovati-bez-osnovania' => '/catalog/krovati',
'/catalog/pledy' => '/',
'/catalog/divany-evroknizhka-zhakkard' => '/catalog/divany-evroknizhka',
'/catalog/divany-klik-klyak-red' => '/catalog/divany',
'/catalog/divany-bez-kanape' => '/catalog/divany',
'/catalog/divany-karkas-iz-massiva' => '/catalog/divany',
'/catalog/divany-evroknizhka-rozovye' => '/catalog/divany-evroknizhka',
'/catalog/krovati-venge' => '/catalog/krovati',
'/catalog/divany-akkordeon-ekokozha' => '/catalog/divany-akkordeon',
'/catalog/divany-dlya-ofisa' => '/catalog/divany',
'/catalog/divany-klik-kljak' => '/catalog/divany-raskladnye',
'/catalog/divany-klik-klyak-velyurovye' => '/catalog/divany-raskladnye-velyurovye',
'/catalog/divany-klik-klyak-fioletovye' => '/catalog/divany-raskladnye-fioletovye',
'/catalog/divany-sleeping-place-150' => '/catalog/divany',
'/catalog/divany-fioletovye-ehkokozha' => '/catalog/divany-fioletovye',
'/catalog/kresla-iz-ekokozhi' => '/catalog/kresla',
'/catalog/krovati-90-190' => '/catalog/krovati',
'/catalog/kresla-ofisnye' => '/catalog/kresla',
];
if (isset($arr[$this->request->getUrl()])) {
$newUrl = $arr[$this->request->getUrl()];
Yii::$app->response->redirect($newUrl, 301);
}
}
}
<##?php
namespace frontend\controllers\base;
use common\components\SubDomainHelper;
use common\helpers\EcHelper;
use common\models\Region;
use common\models\SubdomainExclude;
use frontend\components\CurrentRegion;
use frontend\dto\layouts\header\HeaderDto;
use frontend\dto\layouts\footer\FooterDto;
use frontend\helpers\layouts\LayoutHelper;
use Yii;
use yii\web\Controller;
use yii\web\Cookie;
/**
* Базовый контроллер для фронта
*
* @property ?Region $region
* @property CurrentRegion $currentRegion
* @property HeaderDto $headerDto
* @property FooterDto $footerDto
* @property bool $fullWidth
*/
abstract class BaseController extends Controller
{
public ?Region $region = null;
public CurrentRegion $currentRegion;
public HeaderDto $headerDto;
public FooterDto $footerDto;
public bool $fullWidth = false;
public string $yandexCaptchaKey;
public bool $isTransparent = false;
public function init()
{
/*
$ip = \Yii::$app->request->userIP; # var_dump($ip); exit();
$isRu = \Yii::$app->geoIp->isIpFromRussia($ip);
if (!$isRu) {
$message = 'Здравствуйте! Спасибо за визит на наш сайт moon.ru. Если вы видите это сообщение, возможно, ваш доступ осуществляется за пределами территории Российской Федерации, либо у вас активирован VPN. Пожалуйста, проверьте настройки подключения и обновите страницу для корректной работы сайта. |
';
\Yii::$app->response->statusCode = 500;
\Yii::$app->response->content = $message;
\Yii::$app->response->send();
\Yii::$app->end();
}
*/
parent::init();
$this->checkRedirects();
$this->currentRegion = Yii::$app->currentRegion;
$helper = Yii::$container->get(LayoutHelper::class);
$this->headerDto = $helper->getHeaderDto();
$this->footerDto = $helper->getFooterDto();
$this->yandexCaptchaKey = Yii::$app->params['yandexCaptcha']['clientKey'];
// Сохранение UTM меток
$this->saveUTM();
// Сохранение меток Admitad
$this->saveAdmitad();
// Открытие сессии
Yii::$app->session->open();
EcHelper::setUserCookies(
Yii::$app->session->Id,
EcHelper::USER_DEFAULT_ROLE,
'',
$this->currentRegion->region->capital_name ?? ''
);
if (YII_ENV === 'prod') {
$this->checkMainPageSlashes();
$this->seoRedirect();
}
}
/**
* Если существует id Admitad записать его в куки
*/
protected function saveAdmitad(): void
{
$cookies = Yii::$app->response->cookies;
$admitadUid = Yii::$app->request->get('admitad_uid');
if ($admitadUid !== null) {
$cookies->add(new Cookie([
'name' => 'admitad_uid',
'value' => $admitadUid,
]));
}
}
/**
* Сохранение UTM меток в cookie
*/
protected function saveUTM(): void
{
$cookies = Yii::$app->response->cookies;
$utmSource = Yii::$app->request->get('utm_source');
if ($utmSource !== null) {
$cookies->add(new Cookie([
'name' => 'utm_source',
'value' => $utmSource,
]));
}
$utmMedium = Yii::$app->request->get('utm_medium');
if ($utmMedium !== null) {
$cookies->add(new Cookie([
'name' => 'utm_medium',
'value' => $utmMedium,
]));
}
$utmCampaign = Yii::$app->request->get('utm_campaign');
if ($utmCampaign !== null) {
$cookies->add(new Cookie([
'name' => 'utm_campaign',
'value' => $utmCampaign,
]));
}
}
/**
* Редирект 301 на главную страницу, если поддомена нет в списке разрешённых
*/
protected function seoRedirect(): void
{
$domainSplit = SubDomainHelper::getSubDomain();
// Если есть поддомен
if ($domainSplit) {
$subDomainExists = SubdomainExclude::getSubDomainExists($domainSplit);
if ($subDomainExists !== -1) {
// Если домен не найден в исключениях, то 301 редирект
if ($subDomainExists === 0) {
header('HTTP/1.1 301 Moved Permanently');
header('Location: https://www.' . strtolower(Yii::$app->name));
exit();
}
}
}
}
/**
* Если слэшей >= 2, то редирект на страницу без слэшей
*/
public function checkMainPageSlashes(): void
{
$currentUrl = (empty($_SERVER['HTTPS']) ? 'http' : 'https') . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$newUrl = str_replace(':/', '://', trim(preg_replace('/\/+/', '/', $currentUrl), '/'));
$redirectTo = 'Location: ' . $newUrl;
if (preg_match('/\/{2,}$/', $currentUrl) === 1) {
header('HTTP/1.1 301 Moved Permanently');
header($redirectTo);
exit();
}
}
private function checkRedirects()
{
$arr = [
'/catalog/banketki-moon' => '/catalog/banketki',
'/catalog/detskie' => '/',
'/catalog/detskie-podushki-odeyala' => '/',
'/catalog/detskie-tovary' => '/',
'/catalog/divany-akkordeon-baron' => '/catalog/divany-akkordeon',
'/catalog/divany-amsterdam' => '/catalog/divany',
'/catalog/divany-atlanta' => '/catalog/divany',
'/catalog/divany-atlanta-ekokozha' => '/catalog/divany',
'/catalog/divany-atlanta-tkanevye' => '/catalog/divany-tkanevye',
'/catalog/divany-baron' => '/catalog/divany',
'/catalog/divany-barselona' => '/catalog/divany',
'/catalog/divany-boston' => '/catalog/divany',
'/catalog/divany-dallas' => '/catalog/divany',
'/catalog/divany-dublin' => '/catalog/divany',
'/catalog/divany-evroknizhka-amsterdam' => '/catalog/divany-evroknizhka',
'/catalog/divany-evroknizhka-atlanta' => '/catalog/divany-evroknizhka',
'/catalog/divany-evroknizhka-dublin' => '/catalog/divany-evroknizhka',
'/catalog/divany-evroknizhka-tokio' => '/catalog/divany-evroknizhka',
'/catalog/divany-evroknizhka-turin' => '/catalog/divany-evroknizhka',
'/catalog/divany-gamburg' => '/catalog/divany',
'/catalog/divany-karina' => '/catalog/divany',
'/catalog/divany-klik-klak-zhakkard' => '/catalog/divany',
'/catalog/divany-korichnevye-ehkokozha' => '/catalog/divany',
'/catalog/divany-marsel' => '/catalog/divany',
'/catalog/divany-moon' => '/catalog/divany',
'/catalog/divany-moon-akkordeon' => '/catalog/divany-akkordeon',
'/catalog/divany-moon-delfin' => '/catalog/divany',
'/catalog/divany-moon-evroknizhka' => '/catalog/divany-evroknizhka',
'/catalog/divany-moon-lit' => '/catalog/divany',
'/catalog/divany-moon-pryamye' => '/catalog/divany-pryamye',
'/catalog/divany-moon-uglovye' => '/catalog/divany-uglovye',
'/catalog/divany-na-nozhkah' => '/catalog/divany',
'/catalog/divany-nedorogo' => '/catalog/divany',
'/catalog/divany-parma' => '/catalog/divany',
'/catalog/divany-pryamye-amsterdam' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-atlanta' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-bakkara' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-baron' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-boston' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-dallas' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-dublin' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-gamburg' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-karina' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-lion' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-madrid' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-marrakesh' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-marsel' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-palermo' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-parma' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-santa-next' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-tokio' => '/catalog/divany-pryamye',
'/catalog/divany-pryamye-turin' => '/catalog/divany-pryamye',
'/catalog/divany-s-osnovaniem-iz-berezovyh-lat' => '/catalog/divany',
'/catalog/divany-uglovye-amsterdam' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-atlanta' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-baron' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-boston' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-chester' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-dallas' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-delfin-dublin' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-delfin-gamburg' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-dublin' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-ekokozha' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-gamburg' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-karina' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-malta' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-marsel' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-parma' => '/catalog/divany-uglovye',
'/catalog/divany-vykatnye-boston' => '/catalog/divany',
'/catalog/dvuhyarusnye-krovati' => '/catalog/krovati',
'/catalog/gamaki' => '/',
'/catalog/garden-swing' => '/',
'/catalog/izdeliya-iz-rotanga' => '/',
'/catalog/kacheli' => '/',
'/catalog/kollekcija-flash' => '/',
'/catalog/kollekcija-patio' => '/',
'/catalog/komody' => '/',
'/catalog/komody-dlya-detskoy-komnaty' => '/',
'/catalog/komody-dlya-spalny' => '/',
'/catalog/korpusnaja-mebel' => '/',
'/catalog/krovati-dlya-detskoy-komnaty' => '/catalog/krovati',
'/catalog/krovati-dub-ferara' => '/catalog/krovati',
'/catalog/krovati-dub-kremona' => '/catalog/krovati',
'/catalog/krovati-dub-molochnyi' => '/catalog/krovati',
'/catalog/krovati-moon' => '/catalog/krovati',
'/catalog/krovati-moon-s-mehanizmon' => '/catalog/krovati',
'/catalog/krovati-moon-s-osnovaniem' => '/catalog/krovati',
'/catalog/kuchonnye-ugolki' => '/',
'/catalog/kuhni' => '/',
'/catalog/kuhni-nedorogie' => '/',
'/catalog/kuhni-pryamye' => '/',
'/catalog/kuhni-uglovye' => '/',
'/catalog/kukhonnye-aksessuary' => '/',
'/catalog/kupe-photoprint' => '/',
'/catalog/matrasy-dvuspalnye-nedorogo' => '/catalog/matrasy',
'/catalog/matrasy-moon-erid-2VtzqxfJxZm' => '/catalog/matrasy',
'/catalog/mebel-dlja-dachi' => '/',
'/catalog/novinki' => '/',
'/catalog/obuvnicy' => '/',
'/catalog/odnoyarusnye-krovati' => '/catalog/krovati',
'/catalog/osnovanija' => '/',
'/catalog/osnovanija1' => '/',
'/catalog/patio' => '/',
'/catalog/polki' => '/',
'/catalog/pufy-moon-trade' => '/catalog/pufy',
'/catalog/raskladnye-krovati' => '/catalog/krovati',
'/catalog/shkafy' => '/',
'/catalog/shkafy-dlya-detskoy-komnaty' => '/',
'/catalog/shkafy-dlya-spalny' => '/',
'/catalog/shkafy-kupe' => '/',
'/catalog/shkafy-mirror' => '/',
'/catalog/shkafy-navesnye' => '/',
'/catalog/shkafy-penaly' => '/',
'/catalog/shkafy-raspashnye' => '/',
'/catalog/shkafy-vitriny' => '/',
'/catalog/shtory' => '/',
'/catalog/sofas-special-offer-non+' => '/',
'/catalog/spalnie-garnitury' => '/',
'/catalog/stellazhi' => '/',
'/catalog/stenki' => '/',
'/catalog/stojjki-dlja-gamakov' => '/',
'/catalog/stoly-kompjuternye' => '/',
'/catalog/stoly-pismennye' => '/',
'/catalog/tumby-pod-tv' => '/',
'/catalog/tymby-moon' => '/',
'/catalog/uglovye-atlanta' => '/catalog/divany-uglovye',
'/catalog/veshalki' => '/',
'/catalog/zashitnye-chehly-moon' => '/',
'/catalog/zerkala' => '/',
'/catalog/prikhozhie' => '/',
'/catalog/sale-of-sofas' => '/catalog/divany-so-skidkoi',
'/catalog/divany-vykatnye-orangevye' => '/catalog/divany',
'/catalog/divany-vykatnye-ekokozha' => '/catalog/divany',
'/catalog/divany-vykatnye-korichnevye' => '/catalog/divany',
'/catalog/divany-vykatnye-tkanevye' => '/catalog/divany',
'/catalog/divany-uglovye-vykatnye' => '/catalog/divany-uglovye',
'/catalog/divany-vykatnye-zelenye' => '/catalog/divany',
'/catalog/divany-vykatnye-rozovye' => '/catalog/divany',
'/catalog/divany-vykatnye' => '/catalog/divany',
'/catalog/divany-pryamye-vykatnye' => '/catalog/divany',
'/catalog/divany-vykatnye-velurovye' => '/catalog/divany',
'/catalog/divany-vykatnye-bezhevye' => '/catalog/divany',
'/catalog/divany-dlya-detskoy-komnaty' => '/catalog/divany-detskie',
'/catalog/kresla-dlya-otdyha' => '/catalog/kresla-dlja-otdyha',
'/catalog/krovati-osnovanie' => '/catalog/krovati-s-osnovaniem',
'/catalog/Metall-krovati' => '/catalog/krovati-metallicheskie',
'/catalog/namatrasnik' => '/catalog/namatrasniki',
'/catalog/modulnyy-divany' => '/catalog/modulnye-divany',
'/catalog/divany-uglovye-nedorogo' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-delfin-zhakkard' => '/catalog/divany-uglovye',
'/catalog/matrasy-v-skrutke' => '/catalog/matrasy',
'/catalog/podushki-s-effektom-ohlazhdeniya' => '/catalog/podushki',
'/catalog/divany-s-osnovaniem-iz-pruzhinnyh-zmeek' => '/catalog/divany',
'/catalog/divany-zhestkie' => '/catalog/divany',
'/catalog/pododejalniki' => '/',
'/catalog/postelnoe-belye' => '/',
'/catalog/mebel-rotang' => '/',
'/catalog/divany-uglovye-delfin-shenil' => '/catalog/divany-uglovye',
'/catalog/nabory-mebeli' => '/',
'/catalog/divany-uglovye-delfin-eco-kozha' => '/catalog/divany-uglovye',
'/catalog/bed-collection-new' => '/',
'/catalog/podushki-klassicheskie' => '/catalog/podushki',
'/catalog/divany-raskladnye-shenill' => '/catalog/divany-raskladnye',
'/catalog/divany-raskladnye-zhakkard' => '/catalog/divany-raskladnye',
'/catalog/divany-s-osnovaniem-iz-rezinotkanevyh-remnei' => '/catalog/divany',
'/catalog/divany-uglovye-delfin-rogozhka' => '/catalog/divany-uglovye',
'/catalog/divany-uglovye-rogozhka' => '/catalog/divany-uglovye',
'/catalog/divany-raskladnye-rozovye' => '/catalog/divany-raskladnye',
'/catalog/matrasy-odnospalnye-nedorogo' => '/catalog/matrasy',
'/catalog/divany-klik-klyak-bezhevye' => '/catalog/divany',
'/catalog/kresla-glider' => '/catalog/kresla',
'/catalog/divany-klik-klyak-dlina-200' => '/catalog/divany',
'/catalog/divany-vysokie' => '/catalog/divany',
'/catalog/divany-s-ottomankoi' => '/catalog/divany',
'/catalog/prostyni' => '/',
'/catalog/krovati-bez-osnovania' => '/catalog/krovati',
'/catalog/pledy' => '/',
'/catalog/divany-evroknizhka-zhakkard' => '/catalog/divany-evroknizhka',
'/catalog/divany-klik-klyak-red' => '/catalog/divany',
'/catalog/divany-bez-kanape' => '/catalog/divany',
'/catalog/divany-karkas-iz-massiva' => '/catalog/divany',
'/catalog/divany-evroknizhka-rozovye' => '/catalog/divany-evroknizhka',
'/catalog/krovati-venge' => '/catalog/krovati',
'/catalog/divany-akkordeon-ekokozha' => '/catalog/divany-akkordeon',
'/catalog/divany-dlya-ofisa' => '/catalog/divany',
'/catalog/divany-klik-kljak' => '/catalog/divany-raskladnye',
'/catalog/divany-klik-klyak-velyurovye' => '/catalog/divany-raskladnye-velyurovye',
'/catalog/divany-klik-klyak-fioletovye' => '/catalog/divany-raskladnye-fioletovye',
'/catalog/divany-sleeping-place-150' => '/catalog/divany',
'/catalog/divany-fioletovye-ehkokozha' => '/catalog/divany-fioletovye',
'/catalog/kresla-iz-ekokozhi' => '/catalog/kresla',
'/catalog/krovati-90-190' => '/catalog/krovati',
'/catalog/kresla-ofisnye' => '/catalog/kresla',
];
if (isset($arr[$this->request->getUrl()])) {
$newUrl = $arr[$this->request->getUrl()];
Yii::$app->response->redirect($newUrl, 301);
}
}
}
An internal server error occurred.