當我在Google上搜索諸如「rearrange table columns in asp.net
」之類的內容並點擊Wrox's forum site的鏈接時,該網站向我致以一個消息,比如「您的Google搜索」在asp.net中重新排列表格列「,將您帶到Wrox論壇...「。網站如何知道我用來找到它的Google查詢?
網站如何知道我在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";
警告:上面的代碼只是一個例子,可能不正確或安全!
它查看引用標頭。這裏有一些fairly basic PHP code來做到這一點。
像這些傢伙建議,這是HTTP_REFERER
頭變量。該查詢位於URL中的「q」鍵中。所以,如果你想解析,你可以將查詢字符串和URL解碼爲「q」變量。
+1進行正確的拼寫。 3個R,而不是4個! – 2009-08-28 16:57:38