Перенаправить, если сайт не отображается во фрейме - PullRequest
1 голос
/ 17 января 2012

У меня есть страница, которую я хочу видеть только в том случае, если она отображается в фрейме.

Возможно ли это в PHP, htaccess или еще как-нибудь? как?

Я бы предпочел решение на PHP

Спасибо!

Ответы [ 2 ]

7 голосов
/ 17 января 2012

Фреймы только на стороне клиента, поэтому вы не можете проверить это через PHP или .htaccess. Вы можете проверить это в Javascript. Смотрите эту тему:

Как определить, загружается ли веб-страница внутри iframe или непосредственно в окне браузера?

EDIT Вот пример, который будет перенаправлять для вас. Это простой Javascript, но если вы делаете это с помощью jQuery, вы можете написать ту же функцию в document.ready

<script>
function check_frame() {
     if( top === self ) { // not in a frame
          location.href = "/link/to/some/url"; // either the frameset or an error.
     }
}
</script>
<body onLoad="check_frame()">
... normal code for your page here ...
</body>

Обратите внимание, что страница все еще может быть страницей PHP, ей просто нужно будет вывести этот бит Javascript.

0 голосов
/ 17 мая 2014

Я не поверил приведенному выше ответу, поэтому я попробовал это:

$requri = $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
if (strpos($requri, $domain_of_uri_in_frame_no_http) !== FALSE){
    header( "Location: " . $top_uri ) ;
}

Это не сработало, так что не тратьте свое время :).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...