PHP / JS -获取所有重定向的列表


PHP / JS - Get a list of all redirects

我正在寻找一种方法,一旦用户点击网页上的链接,就可以获得所有重定向的列表。我想引用用户点击链接时地址栏中最初显示的内容。问题是,在用户点击链接后,网站会在后台将用户重定向几次。

我尝试将引用URL存储在会话变量中,但它只是返回最后访问的重定向。我感兴趣的那个可能在后面几层。所以我想生成一个数组来遍历。

这是我到目前为止尝试的:

<?php session_start(); if (!isset($_SESSION["origURL"])) $_SESSION["origURL"] = $_SERVER["HTTP_REFERER"]; $redirects = array("1" => $_SESSION["origURL"]); ?>

解决方案应该在PHP或JS或两者的组合。

在会话中保存数组而不是最后一个URL字符串。

session_start();
if( !isset($_SESSION['redirects']) ) $_SESSION['redirects'] = array();
$_SESSION['redirects'] [] = $_SERVER["HTTP_REFERER"];

然后检查你的$_SESSION['redirects']数组

一个简单的javascript解决方案如下

(如果可以在页面加载时运行代码)

var Beacon = new Image();
Beacon.src = MY_URL.php+'?r='+window.location;

,然后在您的服务器端代码在会话

中存储一个数组
$_SESSION['myRedirects'].push( $_GET['r'] );

如果你只能稍后插入代码(JS),事情变得棘手…你必须为大多数点击添加一个监听器,一旦它们被点击,防止默认操作(preventDefault)——创建信标/ajax请求,然后将window.location.href更改为被点击元素的href值。

这个解决方案可以工作-但你必须确定哪些链接产生重定向,而不是一个javascript函数,可能会停止当防止链接的默认行为等