2009-08-28 76 views
2

当我在Google上搜索诸如“rearrange table columns in asp.net”之类的内容并点击Wrox's forum site的链接时,该网站向我致以一个消息,比如“您的Google搜索”在asp.net中重新排列表格列“,将您带到Wrox论坛...“。网站如何知道我用来找到它的Google查询?

网站如何知道我在Google中输入了哪个查询?我怎么能把这种能力添加到我的网站?

回答

12

它正在解析来自HTTP_REFERER服务器变量中查询参数的查询,该变量包含您来自并在您的HTTP请求中提供的URL。

+1

+1进行正确的拼写。 3个R,而不是4个! – 2009-08-28 16:57:38

8

它使用称为“HTTP引用者”的标头。请参阅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"; 

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

2

像这些家伙建议,这是HTTP_REFERER头变量。该查询位于URL中的“q”键中。所以,如果你想解析,你可以将查询字符串和URL解码为“q”变量。

相关问题