我有两个文件,checking.php包含要检查的代码是从redirect.php重定向,并打印相应的消息,redirect.php包含重定向到文件A的代码。
checking.php
$referrer = $_SERVER['HTTP_REFERER'];
if (!preg_match("/redirect.php/",$referrer)) {
echo 'not redirect from redirect.php';
}
else
{
echo 'is redirect from redirect.php';
}
redirect.php
header("location: http://abcdomain.com/checking.php");
exit();
但这不起作用,请建议。
答案 0 :(得分:1)
使用header("location: http://abcdomain.com/checking.php");
不会设置REFERRER,下面显示了一个可能的解决方案(测试并且100%正常工作)
在REDIRECT.php中使用
echo "<script>parent.self.location='http://abcdomain.com/checking.php';</script>";
exit();
这会在check.php中设置$ _SERVER ['HTTP_REFERER']
出现此问题的可能原因如下所示
某些浏览器限制访问不允许传递HTTP_REFERER
在地址栏中键入地址将不会传递HTTP_REFERER
打开一个新的浏览器窗口将不会传递HTTP_REFERER,因为HTTP_REFERER = NULL
有一些浏览器插件,出于隐私原因阻止它。
一些防火墙和AV可以做到。
答案 1 :(得分:0)
它是不是为你重定向,还是重定向,而是打印错误的信息?如果它没有重定向,请尝试“位置:”大写。
如果要重定向尝试sparseMatrix
以查看其中的内容。