网站如何知道我用来找到它的Google查询?
问题描述:
当我在Google上搜索诸如“rearrange table columns in asp.net
”之类的内容并点击Wrox's forum site的链接时,该网站向我致以一个消息,比如“您的Google搜索”在asp.net中重新排列表格列“,将您带到Wrox论坛...“。网站如何知道我用来找到它的Google查询?
网站如何知道我在Google中输入了哪个查询?我怎么能把这种能力添加到我的网站?
答
它正在解析来自HTTP_REFERER
服务器变量中查询参数的查询,该变量包含您来自并在您的HTTP请求中提供的URL。
答
它使用称为“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";
警告:上面的代码只是一个例子,可能不正确或安全!
答
像这些家伙建议,这是HTTP_REFERER
头变量。该查询位于URL中的“q”键中。所以,如果你想解析,你可以将查询字符串和URL解码为“q”变量。
+1进行正确的拼写。 3个R,而不是4个! – 2009-08-28 16:57:38