JavaScript重定向:Referer标头问题

前端之家收集整理的这篇文章主要介绍了JavaScript重定向:Referer标头问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有人跟着博客链接(比如 http://blog)来到我的网站(比如 http://mysite/a.php).

所以现在她在http://mysite/a.php页,referer设置为http://blog

现在页面http://mysite/a.php上有JavaScript,它执行以下重定向

    document.location = "http://mysite/b.PHP;
    //This is executed before any Google Analytics script.

现在在http://mysite/b.php的请求中,referer设置为http://mysite/a.php.
因此(我认为如此),我的Google Analytics会显示来自http://mysite/a.php的所有流量.

请建议一个解决方案.
注意:JavaScript重定向很关键,无法摆脱它.
我也尝试从服务器发送302代码,但没有成功.

解决方法

编辑:新的,推荐的方式

Google Analytics现在有一个特殊的网址参数utm_referrer,您可以将引荐传递到您要重定向到的网页;这样做将模拟与下面相同的行为,而不需要弄乱cookie或功能.

在您的示例中,您将使代码说:

document.location = "http://mysite/b.PHP?utm_referrer=" + encodeURIComponent(location.href); ;

旧的,更难但功能性的方式

Google Analytics(分析)有一个名为setRefererOverride()功能.如果您设置它,它将覆盖它跟踪的引用者值到您设置的任何值.

best way to do this是在重定向之前将真实的引用者存储在cookie中,如下所示:

document.cookie = "realreferrer="+encodeURIComponent(document.referrer)+"; path=/";

然后,读取页面上的cookie值.如果设置了cookie,请在您的综合浏览页面之前调用函数.

var realreferrer = readCookie("realreferrer"); //using a readCookie function of some kind
if (realreferrer) {
 _gaq.push(['_setReferrerOverride',realreferrer ]);
            //if using the old code,use pageTracker._setReferrerOverride(realreferrer);
}

猜你在找的JavaScript相关文章