2010-07-12 55 views
4

为了优化我的网站,我为图像,CSS和JavaScript等内容设置了一个静态子域。我如何停止将Google Analytics(分析)跟踪Cookie发送到我的静态子网域,但仍然可以访问example.com和www.example.com?禁止将Google Anayltics Cookie发送到Cookie较少的域

通过一些文件已经看过,没有运气

回答

2

你不能有一个被发送到www.example.comexample.com但不othersubdomain.example.com一个cookie。

理论上,您可以将cookie发送到example.com,但不是subdomain.example.com,但它在IE中不起作用。

这就是为什么当你打算使用自己的安全上下文使用子域时,你不应该使用no-www example.com地址。无论如何,最好只有www.example.comexample.com之一作为“正确的”URL。因此,请将example.com的重定向设置为www.example.com,除非您有意设置domain=.example.com,否则不会共享Cookie。

+0

美妙谢谢 – 2010-07-14 12:09:43

+0

兴趣的人对重定向代码被 RewriteEngine叙述上 的RewriteCond%{HTTP_HOST} ^例如\ .COM 重写规则^(。*)$ http://www.example.com/$1 [R =永久,L] ,然后在谷歌分析脚本,你需要把 _gaq.push([ '_ setDomainName', “www.example.com”]) ; – 2010-07-14 12:53:44

3

如果您在使用Google Analytics创建每个域名(包括您的子域名)的Cookie时遇到问题。这是我在其他主题上发布的解决方案。


作者golly我觉得我已经找到了一个临时解决方案,以破解谷歌提供的代码。

如果你进入GA并获得非异步代码和选择:

One domain with multiple subdomains 
Examples: apps.konoro.org 
    store.konoro.org 
    video.konoro.org 

你会看到,它为您提供了一个.konoro.org代码示例。将其更改为www.konoro.org,并且所有Cookie将具有:.www.konoro.org(在它们前面有一个点)。

现在,如果你回到你的异步代码,除了Async之外,只有一个区别。您需要将['_setDomainName', 'www.konoro.org']作为第二个选项,而不是在['_trackPageview']之后。

出于某种原因,这是第二个选项,它工作正常。

我最后的代码是:

var _gaq = _gaq || []; 
_gaq.push(
    ['_setAccount', 'UA-XXXXXXX-1'], 
    ['_setDomainName', 'www.konoro.org'], 
    ['_trackPageview'] 
); 

(function() { 
    var ga = document.createElement('script'); 
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
    ga.setAttribute('async', 'true'); 
    document.documentElement.firstChild.appendChild(ga); 
})(); 
+0

显然,它必须第二个因为_trackPageview启动跟踪,所以你不能再传递变量... – 2011-09-15 14:26:23