src/AppBundle/EventSubscriber/LegacyRedirectSubscriber.php line 15

Open in your IDE?
  1. <?php
  2. namespace AppBundle\EventSubscriber;
  3. use Symfony\Component\HttpFoundation\RedirectResponse;
  4. use Symfony\Component\HttpKernel\Event\GetResponseEvent;
  5. use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
  6. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  7. use Symfony\Component\HttpKernel\KernelEvents;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. class LegacyRedirectSubscriber implements EventSubscriberInterface
  10. {
  11.     public function onKernelException(GetResponseForExceptionEvent $event)
  12.     {
  13.         if (!($event->getException() instanceof NotFoundHttpException)) {
  14.             return;
  15.         }
  16.         $requestUri $event->getRequest()->getRequestUri();
  17.         // redirects for different domains
  18.         // FIXME
  19. //        $host = $event->getRequest()->getHttpHost();
  20. //        if (strpos($host, 'sekyragroup.cz') === false) {
  21. //            $hosts = array(
  22. //                // FIXME
  23. //                '/cz/submenu/o-spolecnosti' => '/pages/about-us',
  24. //                '/cz/submenu/pro-media/tiskove-zpravy' => '/pages/about-us#pro-media',);
  25. //
  26. //            if (array_key_exists($host, $hosts)) {
  27. //                $event->setResponse(new RedirectResponse($hosts[$host]));
  28. //                return;
  29. //            }
  30. //        }
  31.         if (strpos($requestUri'/cz/projekty/rezidencni-projekty/') === 0) {
  32.             $event->setResponse(new RedirectResponse('/pages/byty-prodej-praha'));
  33.             return;
  34.         }
  35.         if (strpos($requestUri'/cz/projekty/kancelarske-projekty/') === 0) {
  36.             $event->setResponse(new RedirectResponse('/pages/kancelare-pronajem-praha'));
  37.             return;
  38.         }
  39.         if (strpos($requestUri'/cz/projekty/velka-rozvojova-uzemi/') === 0) {
  40.             $event->setResponse(new RedirectResponse('/pages/rozvojova-uzemi'));
  41.             return;
  42.         }
  43.         if (strpos($requestUri'/cz/submenu/cenik-bytu') === 0) {
  44.             $event->setResponse(new RedirectResponse('/units'));
  45.             return;
  46.         }
  47.         $map = array(
  48.             // legacy redirects
  49.             '/cz/submenu/o-spolecnosti' => '/pages/about-us',
  50.             '/cz/submenu/pro-media/tiskove-zpravy' => '/pages/about-us#pro-media',
  51.             '/cz/submenu/pro-media/archiv-tiskovych-zprav' => '/pages/about-us#pro-media',
  52.             '/cz/submenu/ke-stazeni/loga' => '/pages/about-us#ke-stazeni',
  53.             '/cz/submenu/kariera' => '/pages/about-us#kariera',
  54.             '/cz/submenu/kariera/volne-pozice' => '/pages/about-us#kariera',
  55.             '/cz/submenu/kariera/volna-pozice---projektovy-manager-junior' => '/pages/about-us#kariera',
  56.             '/cz/submenu/kontakt' => '/pages/contact-us',
  57.             '/cz/informace/sjednani-schuzky' => '/pages/contact-us',
  58.             '/cz/informace/pravni-poradenstvi' => '/pages/contact-us',
  59.             '/cz/submenu/pro-media/kontakt-na-pr' => '/pages/contact-us',
  60.             '/cz/informace/budeme-kontaktovat' => '/pages/contact-us',
  61.             '/cz/informace/byt-na-prani-napiste-nam' => '/pages/contact-us',
  62.             '/cz/submenu/pro-media/kontaktni-formular' => '/pages/contact-us',
  63.             '/cz/submenu/novinky' => '/pages/about-us#novinky',
  64.             '/cz/submenu/o-spolecnosti/oceneni' => '/pages/about-us',
  65.             '/cz/submenu/predmet-cinnosti/investment-management' => '/pages/about-us',
  66.             '/cz/submenu/predmet-cinnosti/development-management' => '/pages/about-us',
  67.             '/cz/submenu/predmet-cinnosti/projektovy-management' => '/pages/about-us',
  68.             '/cz/submenu/o-spolecnosti/management' => '/pages/about-us',
  69.             '/cz/submenu/predmet-cinnosti' => '/pages/about-us',
  70.             '/cz/submenu/gdpr' => 'https://sekyragroup.cz/pages/about-us#gdpr',
  71.             '/cz/projekty/kancelarske-projekty/dokoncene-projekty-2/it-centrum-ceske-sporitelny' => '/pages/about-us',
  72.             '/cz/projekty/kancelarske-projekty/dokoncene-projekty-2/sidlo-spol-nestle-cesko' => '/pages/about-us',
  73.             '/cz/projekty/kancelarske-projekty/dokoncene-projekty-2/t-mobile-centrum' => '/pages/about-us',
  74.             '/cz/projekty/kancelarske-projekty/dokoncene-projekty-2/narodni-technicka-knihovna' => '/pages/about-us',
  75.             '/cz/projekty/rezidencni-projekty' => '/pages/byty-prodej-praha',
  76.             '/cz/projekty/kancelarske-projekty' => '/pages/kancelare-pronajem-praha',
  77.             '/cz/projekty/velka-rozvojova-uzemi' => '/pages/rozvojova-uzemi',
  78.             '/cz/projekty/rezidencni-projekty/aktualni-projekty/tandem-1-a-2' => '/pages/byty-prodej-praha#dokoncene-bytove-projekty',
  79.             '/cz/projekty/rezidencni-projekty/aktualni-projekty/belariepark-ii' => '/pages/byty-prodej-praha4-riviera-modrany',
  80.             '/cz/projekty/kancelarske-projekty/pripravovane-projekty-3/dejvice-center' => '/pages/projekt-dejvice-center',
  81.             '/cz/byty-praha-4' => '/pages/byty-prodej-praha4-riviera-modrany',
  82.             '/cz/byty-praha-5' => '/pages/byty-prodej-praha5-smichov-city-sm2',
  83.             '/cz/byty-praha-8' => '/pages/developersky-projekt-praha8-rohan-city-1',
  84.             '/cz/byty-1-kk-praha' => '/units/?units_filter%5Bflat_disposition%5D=1%2Bkk',
  85.             '/cz/byty-2-kk-praha' => '/units/?units_filter%5Bflat_disposition%5D=2%2Bkk',
  86.             '/cz/byty-3-kk-praha' => '/units/?units_filter%5Bflat_disposition%5D=3%2Bkk',
  87.             '/cz/byty-4-kk-praha' => '/units/?units_filter%5Bflat_disposition%5D=4%2Bkk',
  88.             '/cz/byty-s-terasou-praha' => '/units/?units_filter%5Bterraceorbalcony%5D=on',
  89.             '/cz/submenu/cenik-bytu' => '/units',
  90.             '/index.php?mact=Banners,cntnt01,link,0&cntnt01banner_id=119&cntnt01category_id=24&cntnt01returnid=22' => '/pages/byty-prodej-praha4-riviera-modrany',
  91.             '/index.php?mact=Banners,cntnt01,link,0&cntnt01banner_id=109&cntnt01category_id=20&cntnt01returnid=22' => '/pages/developersky-projekt-praha5-smichov-city-sever',
  92.             '/index.php?mact=Banners,cntnt01,link,0&cntnt01banner_id=110&cntnt01category_id=22&cntnt01returnid=22' => '/pages/kancelare-pronajem-praha'
  93.         );
  94.         if (array_key_exists($requestUri$map)) {
  95.             $event->setResponse(new RedirectResponse($map[$requestUri]));
  96.             return;
  97.         }
  98.         $event->setResponse(new RedirectResponse("/pages/404"));
  99.     }
  100.     public function onKernelRequest(GetResponseEvent $event)
  101.     {
  102.         $requestUri $event->getRequest()->getRequestUri();
  103.         if (strpos($requestUri'/cz/projekty/rezidencni-projekty/') === 0) {
  104.             $event->setResponse(new RedirectResponse('/pages/byty-prodej-praha'));
  105.             return;
  106.         }
  107.         if (strpos($requestUri'/cz/projekty/kancelarske-projekty/') === 0) {
  108.             $event->setResponse(new RedirectResponse('/pages/kancelare-pronajem-praha'));
  109.             return;
  110.         }
  111.         if (strpos($requestUri'/cz/projekty/velka-rozvojova-uzemi/') === 0) {
  112.             $event->setResponse(new RedirectResponse('/pages/byty-prodej-praha'));
  113.             return;
  114.         }
  115.         if (strpos($requestUri'/cz/submenu/cenik-bytu') === 0) {
  116.             $event->setResponse(new RedirectResponse('/units'));
  117.             return;
  118.         }
  119.         $map = array(
  120.             // in-app redirects
  121.             '/pages/redirect-novinky' => '/pages/about-us#novinky',
  122.             '/pages/redirect-pro-media' => '/pages/about-us#pro-media',
  123.             '/pages/redirect-kariera' => '/pages/about-us#kariera',
  124.             // legacy redirects
  125.             '/cz/submenu/o-spolecnosti' => '/pages/about-us',
  126.             '/cz/submenu/pro-media/tiskove-zpravy' => '/pages/about-us#pro-media',
  127.             '/cz/submenu/pro-media/archiv-tiskovych-zprav' => '/pages/about-us#pro-media',
  128.             '/cz/submenu/ke-stazeni/loga' => '/pages/about-us#ke-stazeni',
  129.             '/cz/submenu/kariera' => '/pages/about-us#kariera',
  130.             '/cz/submenu/kariera/volne-pozice' => '/pages/about-us#kariera',
  131.             '/cz/submenu/kariera/volna-pozice---projektovy-manager-junior' => '/pages/about-us#kariera',
  132.             '/cz/submenu/kontakt' => '/pages/contact-us',
  133.             '/cz/informace/sjednani-schuzky' => '/pages/contact-us',
  134.             '/cz/informace/pravni-poradenstvi' => '/pages/contact-us',
  135.             '/cz/submenu/pro-media/kontakt-na-pr' => '/pages/contact-us',
  136.             '/cz/informace/budeme-kontaktovat' => '/pages/contact-us',
  137.             '/cz/informace/byt-na-prani-napiste-nam' => '/pages/contact-us',
  138.             '/cz/submenu/pro-media/kontaktni-formular' => '/pages/contact-us',
  139.             '/cz/submenu/novinky' => '/pages/about-us#novinky',
  140.             '/cz/submenu/o-spolecnosti/oceneni' => '/pages/about-us',
  141.             '/cz/submenu/predmet-cinnosti/investment-management' => '/pages/about-us',
  142.             '/cz/submenu/predmet-cinnosti/development-management' => '/pages/about-us',
  143.             '/cz/submenu/predmet-cinnosti/projektovy-management' => '/pages/about-us',
  144.             '/cz/submenu/o-spolecnosti/management' => '/pages/about-us',
  145.             '/cz/submenu/predmet-cinnosti' => '/pages/about-us',
  146.             '/cz/submenu/gdpr' => 'https://sekyragroup.cz/pages/about-us#gdpr',
  147.             '/cz/projekty/kancelarske-projekty/dokoncene-projekty-2/it-centrum-ceske-sporitelny' => '/pages/about-us',
  148.             '/cz/projekty/kancelarske-projekty/dokoncene-projekty-2/sidlo-spol-nestle-cesko' => '/pages/about-us',
  149.             '/cz/projekty/kancelarske-projekty/dokoncene-projekty-2/t-mobile-centrum' => '/pages/about-us',
  150.             '/cz/projekty/kancelarske-projekty/dokoncene-projekty-2/narodni-technicka-knihovna' => '/pages/about-us',
  151.             '/cz/projekty/rezidencni-projekty' => '/pages/byty-prodej-praha',
  152.             '/cz/projekty/kancelarske-projekty' => '/pages/kancelare-pronajem-praha',
  153.             '/cz/projekty/velka-rozvojova-uzemi' => '/pages/rozvojova-uzemi',
  154.             '/cz/projekty/rezidencni-projekty/aktualni-projekty/tandem-1-a-2' => '/pages/byty-prodej-praha#dokoncene-bytove-projekty',
  155.             '/cz/projekty/rezidencni-projekty/aktualni-projekty/belariepark-ii' => '/pages/byty-prodej-praha4-riviera-modrany',
  156.             '/cz/projekty/kancelarske-projekty/pripravovane-projekty-3/dejvice-center' => '/pages/projekt-dejvice-center',
  157.             '/cz/byty-praha-4' => '/pages/byty-prodej-praha4-riviera-modrany',
  158.             '/cz/byty-praha-5' => '/pages/byty-prodej-praha5-smichov-city-sm2',
  159.             '/cz/byty-praha-8' => '/pages/developersky-projekt-praha8-rohan-city-1',
  160.             '/cz/byty-1-kk-praha' => '/units/?units_filter%5Bflat_disposition%5D=1%2Bkk',
  161.             '/cz/byty-2-kk-praha' => '/units/?units_filter%5Bflat_disposition%5D=2%2Bkk',
  162.             '/cz/byty-3-kk-praha' => '/units/?units_filter%5Bflat_disposition%5D=3%2Bkk',
  163.             '/cz/byty-4-kk-praha' => '/units/?units_filter%5Bflat_disposition%5D=4%2Bkk',
  164.             '/cz/byty-s-terasou-praha' => '/units/?units_filter%5Bterraceorbalcony%5D=on',
  165.             '/cz/submenu/cenik-bytu' => '/units',
  166.             '/index.php?mact=Banners,cntnt01,link,0&cntnt01banner_id=119&cntnt01category_id=24&cntnt01returnid=22' => '/pages/byty-prodej-praha4-riviera-modrany',
  167.             '/index.php?mact=Banners,cntnt01,link,0&cntnt01banner_id=109&cntnt01category_id=20&cntnt01returnid=22' => '/pages/developersky-projekt-praha5-smichov-city-sever',
  168.             '/index.php?mact=Banners,cntnt01,link,0&cntnt01banner_id=110&cntnt01category_id=22&cntnt01returnid=22' => '/pages/kancelare-pronajem-praha',
  169.             // old page names redirects
  170.             '/pages/projekty' => '/pages/byty-prodej-praha',
  171.             '/pages/riviera-modrany' => '/pages/byty-prodej-praha4-riviera-modrany',
  172.             '/pages/smichov' => '/pages/byty-prodej-praha5-smichov-city-sm2',
  173.             '/pages/kancelare' => '/pages/kancelare-pronajem-praha',
  174.             '/pages/projekt-kancelare-smichov-city-sm1' => '/pages/kancelare-pronajem-praha5-smichov-city-sm1',
  175.             '/pages/projekt-rohan-city-a1' => '/pages/kancelare-pronajem-praha8-rohan-city-a1',
  176.             '/pages/projekt-rohan-city-a2' => '/pages/kancelare-pronajem-praha8-rohan-city-a2',
  177.             '/pages/vop-smichov-city' => '/pages/developersky-projekt-praha5-smichov-city-sever',
  178.             '/pages/smichov-city-jih' => '/pages/developersky-projekt-praha5-smichov-city-jih',
  179.             '/pages/vop-rohan-city' => '/pages/developersky-projekt-praha8-rohan-city-1',
  180.             '/pages/vop-zizkov-city' => '/pages/developersky-projekt-praha3-zizkov-city'
  181.         );
  182.         if (array_key_exists($requestUri$map)) {
  183.             $event->setResponse(new RedirectResponse($map[$requestUri]));
  184.             return;
  185.         }
  186.     }
  187.     public static function getSubscribedEvents()
  188.     {
  189.         return [
  190.             KernelEvents::REQUEST => [['onKernelRequest'20]],
  191.             KernelEvents::EXCEPTION => 'onKernelException'
  192.         ];
  193.     }
  194. }