我正在尝试将人们可能登陆的不存在的文件重定向到特定文件(landing.php),但我也想为这些404情况录制一个推荐人......那么我该怎么办呢? / p>
现在我的.htaccess文件中有一个简单的ErrorDocument 404 /landing.php条目,但我如何/在哪里可以实际捕获用户来自自定义目标网页时引用的引荐来源(还有其他的,常客访问landing.php页面,所以我不能只记录该页面的所有推荐人,那么有没有办法只分开404流量?)
答案 0 :(得分:1)
您不能依赖引用者,因为人们和软件可以轻松调整它。根据我的经验,大多数人不这样做,所以它仍然值得跟踪,只要确保在使用之前检查它是否已设置。
当您使用ErrorDocument指令时,可以在$ _SERVER数组中访问Apache will set the REDIRECT_STATUS env变量,并且将包含HTTP状态代码。
if (!empty($_SERVER['REDIRECT_STATUS']) && $_SERVER['REDIRECT_STATUS'] == '404') {
if (!empty($_SERVER['HTTP_REFERER'])) {
// Log the referer
}
}
注意:我看到有些人说这并不总是有效,但我找不到触发环境变量设置的内容。
<强>更新强>
根据Apache manual这些环境变量仅在您使用本地URL时设置。这意味着你应该在ErrorDocument 404 direcive中给出一个相对路径:
Error 404 /landing.php
如果您在其中放置网址,则会出现外部重定向,并且即使网址与您的网站使用相同的网址,也不会将环境变量设置为。
您似乎已经正确地执行了此操作,但我认为我会将其包含在未来的任何用户中。
答案 1 :(得分:0)
在landing.php
文件中:
$referer = $_SERVER['HTTP_REFERER'];
然后,您可以使用$referer
var。