2014-08-27 77 views
4

根據Search Engine Land和其他許多來源,如果您正在爲您的站點設計「動態服務」移動內容,則應該設置HTTP標頭Vary:User-Agent。在哪裏以及如何設置Vary:用戶代理HTTP標頭

這是在.htaccess文件或其他地方完成的嗎?這將是我第一次這樣做,我會非常感謝幫助,甚至是一個例子。經過搜索後,我已將其縮小到meta標籤或htaccess,但是,我可能是錯的。

非常感謝您的幫助。謝謝

+0

爲您的索賠進行投票。關於這個話題並沒有太多的實施,通過博客文章對新/中級網站管理員和開發人員會有很大的幫助。 – berg37 2016-02-09 13:55:09

回答

3

你不要設置它。就是這樣,如果你根據連接到你的客戶端的屬性(這是什麼動態服務)從同一網址提供不同的內容,你也應該返回這個頭,以便搜索引擎知道它不是一個真正的版本他們正在查看的頁面,但只是其中一個User-Agent從屬版本。

通過這種方式,Google可以使用多個用戶代理抓取您的網站,並分別對它們進行緩存和索引,以便各種平臺上的客戶更可能找到正確的信息。

如果您根據標頭提供來自同一網址的不同內容,則應使用此標頭。 首先,您需要基於用戶代理構建實際具有不同輸出的頁面,並且當您擁有此頁面時,可以通過設置響應標題來優化它。你可以通過調用header功能在PHP中:

header('Vary: User-Agent'); 

你可以做到這一點htaccess的太多,但它是一個好主意,只爲實際上有不同內容的頁面做到這一點。所以在我看來,在PHP中做這件事很簡單。

+1

太好了。當我使用http://www.delorie.com/web/headers.html這樣的服務檢查http標題時,是否應該能夠看到Vary:User-Agent?我將它添加到php代碼並進行了測試,但是,它並未出現。我還能怎麼測試呢? – NotJay 2014-08-27 19:13:38

+1

打開Chrome,按F12(開發工具將打開),轉到網絡選項卡。現在打開您的頁面(在普通地址欄中),然後您可以在網絡選項卡中檢查請求。只需選擇該頁面的主要請求,它的詳細信息就會顯示出來,包括響應標題。 – GolezTrol 2014-08-27 19:22:43

+0

謝謝你的幫助。 – NotJay 2014-08-27 19:50:06

2

如果你使用PHP生成網頁,你可以使用header功能,像這樣:

header('Vary: User-Agent'); 

或者,如果你是一個Apache服務器上,你可以使用mod_headers模塊。就像這樣:

Header: set Vary User-Agent 

注意,如果基於其他頭髮送到不同的內容也一樣,那麼你應該將這些其他頭附加到您迴應的Vary頭部。

+0

儘管這是一個Apache的問題,但如果你在這裏尋找ASP.NET/IIS等價的解決方案,答案是...... Response.AppendHeader(「Vary」,「User-Agent」); – MiscellaneousUser 2015-05-03 10:21:27

相關問題