На определенной странице на моем сайте говорят example.com/redirect.php Я написал тег привязки <a href="http://news.ycombinator.com/item?id=5311151">path</a>
,
При нажатии на эту ссылку страница не загружается. При проверке элемента я получил эту ошибку:
Отказался отображатьhttps://news.ycombinator.com/item?id=5311151в кадре, потому что он установлен
«X-Frame-Options» для «DENY»
После поиска в Google я обнаружил, что это именно такое поведение, так как владелец другого сайта не хочет отображать его содержимое в iframe за пределами своего домена.
Я пробовал это, но все они загружаются в iframe.
<?php header(location: https://news.ycombinator.com/item?id=5311151"); ?>
У меня есть два вопроса:
Постскриптум Я использую ламповый стек.
Обновить: По предложению Сергей Середенко в комментариях я пытался с top.location.href = «…»; Это сработало для меня, и я могу перенаправить страницу.
Другая проблема: Мне нужен URL реферера. После выполнения перенаправления с использованием метода Сержа Середенко я не получаю фактический URL-адрес реферера для $ _SESSION [‘HTTP_REFERER’], вместо этого я получаю внутренний URL-адрес. Мне нужен реальный URL реферера.
Я попытался перенаправить URL-адрес на стороне сервера, используя:
<?php header(location: https://news.ycombinator.com/item?id=5311151"); ?>
,
но я получаю эту ошибку: «X-Frame-Options» для «SAMEORIGIN».
Как я могу сделать перенаправление на стороне сервера и сохранить реальный URL реферера?
Заранее большое спасибо 🙂
1)
Помните, что header () должна вызываться перед отправкой любого фактического вывода, либо обычными тегами HTML, пустыми строками в файле, либо из PHP. Это очень распространенная ошибка при чтении кода с включенными или требующимися функциями или другой функцией доступа к файлу, с пробелами или пустыми строками, которые выводятся до вызова header (). Та же проблема существует при использовании одного файла PHP / HTML.
http://php.net/manual/en/function.header.php
2) Попробуйте это:
<?php
//...some your code
print '<script type="text/javascript"> location.replace("https://google.com/"); </script>';
//...
?>
Других решений пока нет …