代码之家  ›  专栏  ›  技术社区  ›  mcjabberz

一个网站怎么知道我用来查找它的google查询?

  •  2
  • mcjabberz  · 技术社区  · 15 年前

    当我寻找诸如 rearrange table columns in asp.net ,然后单击链接 Wrox's forum site ,该站点向我致意,并显示了一条消息,如“您在谷歌搜索‘重新排列ASP.NET中的表列’时,将您带到了WROX论坛…”。

    一个网站怎么知道我在google中输入了什么查询?我怎么能在我的网站上添加这样的功能呢?

    4 回复  |  直到 15 年前
        1
  •  12
  •   recursive    15 年前

    它正在从 HTTP_REFERER 服务器变量,它包含您来自的url,并在您的http请求中提供。

        2
  •  8
  •   JoelFan    15 年前

    它使用一个名为“http referer”的头。见 http://en.wikipedia.org/wiki/HTTP_referrer

    要在站点中使用它,需要某种动态页面生成,如asp/asp.net、php或perl。例如,在Perl中,您可以执行以下操作:

    if ($ENV{HTTP_REFERER} =~ /google.com\?.+&q=(.+?)&/)
        print "Your google search of $1 brought you to this site";
    

    警告 :上面的代码只是一个示例,可能不正确或不安全!

        3
  •  2
  •   Jason    15 年前

    就像这些人说的,是 HTTP_REFERER 标题变量。查询位于url中的“q”键中。所以如果你想解析它,你可以只对querystring进行排序,然后url解码“q”变量。

        4
  •  1
  •   robertc    15 年前

    它会查看引用头。这里有一些 fairly basic PHP code 做这件事。