/** * @DI\Observe("open_hevinci_url") * * @param OpenResourceEvent $event */ public function onOpen(OpenResourceEvent $event) { if (!$this->request) { throw new NoHttpRequestException(); } $url = $event->getResource(); $isIframe = $event->isIframe(); if ($url->getInternalUrl()) { $event->setResponse(new RedirectResponse($this->request->getSchemeAndHttpHost() . $this->request->getScriptName() . $url->getUrl())); return; } else { if ($isIframe) { $headers = get_headers($url->getUrl(), 1); if (isset($headers['X-Frame-Options']) && $headers['X-Frame-Options'] === 'SAMEORIGIN') { $href = "<a href='{$url->getUrl()}'>{$url->getUrl()}</a>"; $response = new Response($href); $event->setResponse($response); return; } } } $event->setResponse(new RedirectResponse($url->getUrl())); }