2015-03-09 5 views
0

Есть ли способ на стороне сервера обнаружить, что данная страница/сценарий была перенаправлена ​​через JavaScript?Можно ли обнаружить, что страница была перенаправлена ​​через JavaScript?

Например, допустим, что у меня есть page.php, который использует location.href = 'tracker.php';, а не <?php header('Location: tracker.php'); ?>. Есть ли способ для tracker.php отличить предыдущую, переадресацию на основе JavaScript с 301 перенаправления на стороне сервера?

+0

Я так не думаю, так как вы не можете доверять заголовкам ... вы можете сделать вывод, что это возможно, но оно не будет надежным – user3012759

ответ

0

Вы можете передать параметр tracker.php, который может быть использован, чтобы определить, исходит ли он из javascript или нет.

Javascript:

location.href = 'tracker.php?redirect=1'; 

tracker.php

<?php 
    if(isset($_GET["redirect"])){ 
     //if we're here, we know it was redirected 
    } 
?> 

Это позволит ваш PHP скрипт знать, если редирект пришел из вашего JavaScript.

+0

Да. Я хотел бы знать, можно ли обнаружить, откуда оно взялось, без какого-либо индикатора, добавленного мной. –

0

Переадресация - это просто еще один HTTP GET, и вы не можете видеть, как он был запущен. Единственный способ, который я вижу, - это вручную передать параметр или отправить HTTP-заголовок, чтобы отметить перенаправленный JavaScript-запрос.

+0

Так что мне любопытно, что когда-то я был рекламным партнером, и я ошибочно реализовал переадресацию JavaScript на сайт продавца, вместо того, чтобы позволить событию click вызвать перенаправление (я делал event.preventDefault(), выполнял некоторую отслеживание и затем повторное перенаправление), и партнерская сеть запретила мне. Я не знаю, как они выяснили, что это происходит. –

+0

Это интересно, AFAIK - и мне может быть что-то не хватает здесь - нажав эту ссылку и установив location.href должен быть эквивалентен, если нет других событий, которые происходят при нажатии, которые каким-то образом означают событие. – SGD

+0

Ах! Я только что вспомнил ... они обнаружили, что перенаправление было искусственным, а не (желательно) от ссылки. Поэтому я действительно задаю неправильный вопрос в этой теме. –

Смежные вопросы