草庐IT

php - 重定向后引荐丢失

coder 2024-04-19 原文

我有一个网站 ( www.accent.jobs ),其中包含 www 上的语言选择工具。子域。 选择语言时,会设置一个 cookie,因此用户只会看到一次语言选择页面,下次会自动以正确的方式重定向。

我在 Analytics 中注意到,从 www 到子域(例如 be.accent.jobs)的流量被视为引荐流量。

我在 www 上做什么。子域:

  • 用户点击链接。
  • Javascript 向设置 cookie 的 PHP 文件发出 AJAX 请求。
  • 用户使用 window.location 通过 JavaScript 重定向。

当用户返回到 www.子域,重定向是通过 PHP 使用 302 完成的,没有页面呈现。

关于如何从 www 获取流量的任何想法。到子域不被处理为分析中的引荐流量?我想保留原始引荐来源网址(引用 www.accent.jobs 的网站)作为 Analytics 中的引荐来源网址。

这是 www 和 be 上的跟踪代码。子域:

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxx-xx']);
_gaq.push(['_trackPageview']);
_gaq.push(['_setDomainName', 'accent.jobs']);
_gaq.push(['_addIgnoredRef', 'accent.jobs']);
_gaq.push(['_addIgnoredRef', 'be.accent.jobs']);
_gaq.push(['_addIgnoredRef', 'nl.accent.jobs']);
_gaq.push(['_addIgnoredRef', 'ro.accent.jobs']);
_gaq.push(['b._setAccount', 'UA-xxxxxx-x']);
_gaq.push(['b._trackPageview']);
_gaq.push(['b._setDomainName', 'accent.jobs']);
_gaq.push(['b._addIgnoredRef', 'accent.jobs']);
_gaq.push(['b._addIgnoredRef', 'be.accent.jobs']);
_gaq.push(['b._addIgnoredRef', 'nl.accent.jobs']);
_gaq.push(['b._addIgnoredRef', 'ro.accent.jobs']); 
    
(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

PS:我正在跟踪多个 UA 帐户,以便将数据也保存在一个旧帐户中,因此使用“双重”跟踪代码。

尝试

  • 尝试用 PHP 中的服务器端 302 header 重定向替换 JavaScript 重定向,但没有成功。
  • 也试过只使用 JavaScript 重定向,还是不行。

最佳答案

您的 _setDomainName 用法正确且足够。 但它的值永远不会发送到 Analytics:您必须在 _trackPageview 之前使用它。

那么 _addIgnoredRef 就没用了。

关于php - 重定向后引荐丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13579577/

有关php - 重定向后引荐丢失的更多相关文章

  1. ruby - 将 spawn() 的标准输出/标准错误重定向到 Ruby 中的字符串 - 2

    我想使用spawn(针对多个并发子进程)在Ruby中执行一个外部进程,并将标准输出或标准错误收集到一个字符串中,其方式类似于使用Python的子进程Popen.communicate()可以完成的操作。我尝试将:out/:err重定向到一个新的StringIO对象,但这会生成一个ArgumentError,并且临时重新定义$stdxxx会混淆子进程的输出。 最佳答案 如果你不喜欢popen,这是我的方法:r,w=IO.pipepid=Process.spawn(command,:out=>w,:err=>[:child,:out])

  2. ruby-on-rails - Ubuntu 14.04 Rails 丢失文件 - 2

    安装Rails时,一切都很好,但后来,我写道:rails-v和输出:/home/toshiba/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in`require':cannotloadsuchfile--rails/cli(LoadError)from/home/toshiba/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in`r

  3. ruby - 将 ruby​​ 日期转换为字符串而不丢失格式 - 2

    我正在尝试将RubyDate对象转换为字符串。日期格式为:Sun,15Sep2013但是,当我使用#to_s将其转换为字符串时,它会给出以下内容:"2013-09-15"相反,我希望它变成:"Sun,15Sep2013" 最佳答案 使用Date#strftime有很多选择require'date'date=Date.parse("Sun,15Sep2013")#=>#date.strftime("%a,%d%b%Y")#=>"Sun,15Sep2013" 关于ruby-将ruby​​日期

  4. ruby-on-rails - 这个 C 和 PHP 程序员如何学习 Ruby 和 Rails? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它

  5. ruby-on-rails - 条件重定向的最佳方式? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。使用Railsv2.1,假设您有一个可从多个位置访问的Controller的操作。例如,在Rails应用程序中,您有一个链接可以从两个不同的View编辑用户,一个在用户索引View中,另一个在另一个View中(比方说从每个页面上的导航栏)。我想知道根据用户点击的链接将用户重定向回正确位置的最佳方法是什么。例如:示例1:列出所有用户点击列表中用户的“编辑”

  6. OSX 上的 Rubygems 丢失 - 2

    我觉得自己像个十足的白痴,但我整天都在研究这个,却一无所获。我重新启动了几次,试图在我的OSX环境、RVM、Brew、Ruby上完全安装Ruby:每次我完成Ruby安装时,它都会在ruby​​gems安装上触底。我不得不重新开始的原因是,在我第一次成功安装(使用打包的一体式RubyInstaller)后,RVM不会在Jewellerybox中更新,所以我无法管理我的gems-这是一个问题通过在/usr/local中而不是在我自己的目录下的系统上的初始Ruby安装。为了解决这个问题,我卸载了我所有的Ruby东西并重新开始。一切正常,直到ruby​​编译器在安装ruby​​2.0.0时开始

  7. ruby-on-rails - 当 AJAX 调用在 Ruby on Rails 中失败时重定向到 500 页 - 2

    我正在使用一个用RubyonRails构建的应用程序,目前错误处理非常差。如果通过ajax执行Controller方法,并且该方法导致500(或404或任何其他响应),则呈现500.html页面并将其作为AJAX请求的结果返回。显然,javascript不知道如何处理该HTML,网页看起来只是在等待响应。在AJAX调用期间发生错误时,rails是否有一种简单的方法来呈现error.rjs模板? 最佳答案 您可以在Controller的rescue_action或rescue_action_in_public方法中使用respond_

  8. ruby-on-rails - 重定向 Rails 3 中特定 Controller 的记录器输出 - 2

    我们想要一个Controller集合,我们将所有操作和下游方法的记录器输出路由到一个单独的日志文件。这是一个Rails3项目。在Rails2中,我们通过重新定义“logger”方法来做到这一点,但在Rails3中,记录的方式是使用“Rails.logger”。我试着把Rails::logger=Logger.new(File.join(Rails.root,'log',"reports_controller.log"),10,1000000)在Controller的顶部,但只有在操作中专门使用Rails.logger的特定情况才会发送到指定的日志文件,Controller的所有默认日志

  9. ruby - 为什么在重定向时,Ruby 的 STDERR 输出先于 STDOUT 输出? - 2

    在bash中,这给出了预期顺序的输出:ruby-e"puts'one';raise'two'"one-e:1:in`':two(RuntimeError)但是如果我将STDERR重定向到STDOUT,我会在输出之前收到错误,这是我不想要的:ruby-e"puts'one';raise'two'"2>&1|cat-e:1:in`':two(RuntimeError)one我想将输出重定向到一个文本文件(它的行为方式与上面的cat相同)并获得输出和异常,但顺序与查看我的输出时的顺序相同终端。这能实现吗? 最佳答案 发生这种情况是因为行缓

  10. ruby - 为什么 Logger 输出到 STDOUT 不会重定向到文件? - 2

    这个脚本被命名为o.rb:@logger=Logger.new(STDOUT)@logger.info"start_time:#{start_time}"当我使用./o.rb运行它时,控制台上的输出是正确的。但是,当我尝试./o.rb>log.txt2>&1时,日志文件是空的!为什么会这样?我在使用简单的puts函数时遇到了同样的问题。更新这将重现此问题:require'logger'logger=Logger.new(STDOUT)loopdologger.info"Thisisatesthaha"sleep(1)end当我使用./foo.rb运行它时,它会正确写入控制台输出。当我运

随机推荐