перенаправление страницы не происходит при нажатии кнопки & lt; a & gt; ссылка на сайт. X-Frame-Options установлен на ‘DENY’

На определенной странице на моем сайте говорят 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.

  1. window.location.href = «https://news.ycombinator.com/item?id=5311151«;
  2. <?php header(location: https://news.ycombinator.com/item?id=5311151"); ?>
  3. window.location.replace (»https://news.ycombinator.com/item?id=5311151«);

У меня есть два вопроса:

  1. Почему по клику дорожка ссылка, новая страница загружается в iframe на той же странице (redirect.php) вместо перенаправления на страницу ycombinator.
  2. Как я могу заставить пользователя перенаправлять на любую страницу за пределами моего сайта.

Постскриптум Я использую ламповый стек.

Обновить: По предложению Сергей Середенко в комментариях я пытался с 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 реферера?
Заранее большое спасибо 🙂

2

Решение

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>';
//...
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]