<##?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.