2009-08-14 71 views
2

我想根據訪問者是否來自搜索引擎來以不同的方式顯示我的網頁。我想我正在檢測搜索引擎推介?我還想知道用於訪問我的網站的搜索字詞。是我的網站來自搜索引擎的訪問者嗎?他們的搜索條件是什麼?

我的解決方案到目前爲止是這樣的:

1)在其上包含公共搜索引擎的URL的HTTP請求查閱情況,篩選即http://www.google.com/searchhttp://www.bing.com/search,或http://search.yahoo.com/search

2)解析的查詢字符串參數搜索條件的引用者,例如「q = search + terms + for + my + website + go + here」

我覺得這不是最強大的解決方案,因爲它沒有使用較少的已知搜索引擎,每個搜索引擎可能都有自己的查詢字符串參數爲搜索條款。例如,據我所知,Google和Bing的搜索字詞參數都是「q」,但雅虎的是「p」。那麼像+, - 等特殊運營商呢?

有沒有更一般的方法來做到這一點?還是有一個圖書館可以幫助我處理更多的搜索引擎?我正在使用運行在Tomcat上的Java,但歡迎來自任何語言和服務器設置的想法。

回答

1

你的方法是關於你能做的最好的。我跑的Drupal類似的模塊,

http://drupal.org/project/search_engine_referers

如果你看一下代碼,它確實你說什麼。我認爲他們還沒有支持Bing.com的版本。

考慮到搜索市場份額在哪裏,如果您可以處理Google(AOL使用Google),Bing和Yahoo,那麼您可以獲得90%以上的搜索結果。你真的需要擔心其他搜索網站嗎?如果你像我一樣在中國,請將baidu.com添加到列表中。

有一些奇怪的小型搜索網站,你無法處理。他們偶爾會改變參數。有些人甚至使用POST發送查詢,所以它在referrer中不可用。

1

在PHP的情況下,您請求$ _REQUEST [「HTTP_REFERRER」]並使用一些pregs或ereg解析搜索字符串。