2009-08-28 90 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」變量。

相關問題