2012-08-24 76 views
3

我想獲取用戶在Google上輸入的搜索字詞,以便到達我的長尾目標網頁(並在該網頁上使用它們)。通過https Google搜索獲取Google搜索條件

使用響應引用來源(在ASP C#中)從查詢字符串中獲取「q」變量效果很好,但前提是引用的Google頁面是而不是加載爲https。

這顯然是一個問題,因爲幾乎每個人都在其瀏覽器上始終登錄他們的Google帳戶,如果他們是這樣,所有Google頁面將自動加載(並重定向)以使用https。

當用戶(在HTTPS://www.google.com)搜索對搜索結果的東西,點擊,谷歌似乎重定向去掉它的查詢字符串的請求的用戶到中間頁和用一個不同的替換它,幾乎只包含中間頁面應該重定向到的URL(即URL到我的長尾的着陸頁)。

有沒有什麼方法可以讓我得到https://www.google.com上使用的原始搜索字詞呢?也許如果JavaScript可以訪問瀏覽器歷史記錄或類似的東西?

回答

1

由於它是谷歌,這是不可能的,因爲沒有與您的網站共享鏈接。

一旦你踏上HTTPS - 它不允許來源標題的發送。我相信你知道,標題可以被操縱,不能被信任,但是,你可能可能信任谷歌。但是,由於隱私政策,Google用戶在Google上完成的任何活動都不會被第三方共享。 Link

再次,在服務器端語言中,您可以找到HTTP Referrer的函數,但不能找到HTTPS referrer的函數。這是有原因的!

除非和直到你沒有與誰可能在他們的RFC 事情創建例外允許HTTP引用僅適用於您的網站的源服務器合作。這是不可能的。

希望有幫助! (在移動上):)

編輯:Wikipedia Link見推薦人隱藏(2日最後一行)

+0

HTTP還是HTTP即使它通過SSL隧道。不要太多地讀入環境變量的名字。 – Quentin

+0

是的,但是,我是按照慣例來說話的:D你看這個問題已經由我多次親自面對很多人解決了,所以只是寫出了他們彈出的東西。但是,我相信沒有一個是不正確的:) – Karma

+1

Google的隱私政策與referer標題無關。它是負責發送引用者的瀏覽器,而不是服務器。服務器不能在「他們的RFC」中創建一個例外 - RFC是一個技術規範,而不是在逐個服務器的基礎上設置的。 – Quentin

3

有什麼辦法,我可以得到使用,原來的搜索字詞HTTPS:// www.google.com

沒有,https會議的全文通過SSL這包括報頭,網址等。在你的情況下,出於安全原因的browers擔保往往因此忽略了referer頭,你不會能夠訪問它(除非dest ination URL也通過HTTPS進行保護)。這是HTTP規範的一部分 - 15.1.3 Encoding Sensitive Information in URI's

你唯一能做的就是在你的網站上放一個免責聲明,說它不能通過https工作。

+0

+1免責聲明。是的免責聲明聽起來不錯。但是,我想他想保留一些東西的記錄?如果從HTTPS引用,則再次不可能跟蹤。 – Karma

+0

Referer頭部被髮送到用戶訪問帶有引用標頭中的URI的頁面後訪問的頁面。鏈接到網站的引用標題不通過SSL進行保護(除非鏈接的網站也使用SSL)。出於安全原因,瀏覽器在離開SSL時通常不會發送referer頭文件,但它是「未被髮送」的,它會阻止它們被讀取,而不是「使用SSL加密」。 – Quentin

+0

@Quentin是好點,會更新我的答案。 – James

1

要查看引薦來源數據,您需要是付費的Google廣告客戶(並且訪問者通過點擊廣告進入),或者使用HTTPS訪問您的網站。現在,這些證書很便宜,或者您可以使用CloudFlare這樣的中介來執行SSL,並在您的網站上擁有自簽名證書。

您還可以使用Google網站管理員工具查看所使用的方法。

我寫了一些關於這個位置:http://blogs.dixcart.com/public/technology/2012/03/say-goodbye-to-keyword-tracking.html

+0

感謝理查德的想法。我會研究它,但我認爲它並不適合我的需求。用戶將通過長尾搜索結果登錄頁面,而不是付費廣告。 – n1ck3

+0

@ n1ck3我確實說過「要麼」,如果您在整個網站上使用HTTPS,您將獲得搜索字符串,而不會成爲AdWords客戶。使用Google網站管理員工具,您還可以更改所有索引結果以包含https,這意味着您無需等待重新索引。 –