2011-11-25 95 views
4

我正在使用需要區域設置作爲URL一部分的網站(例如http://example.com/content/locale)。當需要區域設置時,如何設置og:url?

如果您未輸入語言環境(例如http://example.com/content),則會顯示一個錯誤頁面並要求從列表中選擇一個值。

對於大多數外部網站,我們只是省略語言環境並讓用戶選擇,但是,對於Facebook,這會導致搜尋器刪除錯誤頁面。

如果我們將每個語言環境都包含爲單獨的url:這意味着爲每個頁面創建了數千個對象(因爲我們支持很多語言環境)並且可能會爲該網站創建數十萬個對象。

Facebook是否允許如此大量的og:url爲域名?

有沒有更好的策略可以使用?

回答

4

Facebook希望caninical網站不要直接包含區域設置代碼。在URL中包含一些語言環境代碼意味着圖表中有不同的對象,每個語言環境都有一個對象。

相反,創建不包含區域設置代碼的網址。在包含語言環境代碼的其他每個用戶可見網址上,添加一個指向標準網址的og:URL標記,其中不包含語言環境代碼。

在規範URL上,當Facebook發出請求時,查找useragent字符串。它包含「facebookexternalhit」,然後返回HTML和og標記供Facebook閱讀。如果沒有,則可以提供302服務並將用戶重定向到代表該語言對象的URL。

見FB的開放更多關於如何處理多語言環境國際化圖形對象的文檔

+0

嗨西蒙,感謝您的回答那聰明的東西,我會看,如果它可以實現這爲我們的框架! – Paragon2k11

+0

只是爲了給客戶一個完整的圖片 - 你知道是否有限制您可以創建的Open Graph對象的數量(我們需要數十萬)?如果存在並且我們無法實現您的理想解決方案,我認爲我們可以使用每種語言的一個對象來代替(這看起來更合理)。 – Paragon2k11

+1

沒有限制,但是您絕對不應該在Open Graph中爲每個區域設置中的每個對象創建一個對象。這是因爲隨着時間的推移,Facebook會根據人們與之交互的情況爲圖表中的每個節點賦予權重。這是用來推動Facebook向您的產品發佈的指標之一。爲每個地區的每個對象創建一個URL會將這個權重分散到每個地區對象中 - 這意味着它們的權重不會很高,這意味着您的分配會減少。 –