检测重定向访问者


Detect redirected visitor

以下是场景:

Page1.php的访问者被JavaScript重定向到Page2.php

如果我在任何语言中都不使用任何会话和变量,有没有办法通过监控Page2.php来知道登录Page2.php的访问者是重定向访问者?

无需操作/使用:

  • URL操作
  • Cookie
  • 会话
  • 任何类型的变量
  • Page1.php绝对没有更改

我这么问是因为我不想让其他网站检测到我已经将用户重定向到了他们的网站。

我只是想知道可能性。

重定向时只需在查询字符串中设置一个标志(将查询字符串附加到重定向位置):

Page2.php?redirect=1

或者,如果您需要参考页面:

Page2.php?referer=Page1.php

然后用$_GET['referer'] 检查

你可能可以阅读$_SERVER['HTTP_REFERER'],但我个人倾向于避免它,因为它并不总是包含你认为应该包含的内容。

如果您不想使用服务器端语言,您唯一的选择就是JavaScript。您可以重定向到Page2.php?redirected=true,并使用以下代码到GET,即Page2.php上的重定向变量。

var $_GET = {};
document.location.search.replace(/'??(?:([^=]+)=([^&]*)&?)/g, function () {
    function decode(s) {
        return decodeURIComponent(s.split("+").join(" "));
    }
    $_GET[decode(arguments[1])] = decode(arguments[2]);
});
if($_GET['redirected']){
   // Redirected from Page1.php!
}

来源:如何使用JQuery获取get和POST变量?

执行重定向时,在初始页面上设置一个javascript cookie。

在新页面上,检查cookie是否已设置,然后将其删除。