2016-05-17 40 views
0

方案的問題:Facebook的錯誤需要規範的網址

  1. 我們執行HTTPS網站上。任何帶有HTTP的URL現在都會重定向(301永久重定向)到適當的HTTPS URL。

  2. 爲了避免Facebook的/ share按鈕(放置在網站的許多頁面上)丟失以前的喜歡/共享數量,我們通過「data-href」使按鈕「鏈接」到舊的HTTP URL 「財產。

  3. 此外,我們在一些頁面上放置了「og:url」元標記,指向舊的HTTP URL。

  4. 然後,我在Facebook調試工具https://developers.facebook.com/tools/debug上刮下那些頁面,以確保Facebook獲取最新數據。根據刮掉的數據,規範URL確實指向舊HTTP URL,就像它應該根據我們上面列出的操作一樣。這也反映在保留舊數字的頁面上的類似/分享按鈕上。

  5. 幾天後,我發現一些頁面丟失了舊/喜歡/份額。檢查Facebook調試器中的頁面顯示,Facebook現在將HTTPS URL作爲規範。我們的網頁沒有做任何更改,而「og:url」標記仍然指向HTTP網址。但Facebook錯誤地將HTTPS URL作爲規範URL。現在,如果我在調試器中再次抓取這些信息,它會再次成爲正常現象,將HTTP顯示爲規範並恢復舊的數量的喜歡/份額。但顯然這不是解決問題的辦法,因爲我們無法持續監控我們所有的頁面並一次又一次地刮掉它們。

什麼可能導致問題的任何想法?

+0

Facebook也遵循HTTP重定向。您需要將舊的HTTP URL提供給刮板,而不必將其重定向到HTTPS版本。 (刮板可以通過其用戶代理識別,請參閱社交插件常見問題解答。) – CBroe

+0

@CBroe,謝謝,我會嘗試,但[FAQ](https://developers.facebook .com/docs/plugins/faqs#moving-urls) – Alexander

+0

哦,是的,FAQ明確提到了這一點:_「這還要求舊URL仍然呈現帶有Open Graph標記的文檔並返回HTTP 200響應,至少在何時由Facebook的抓取工具加載。如果您希望其他客戶端在訪問URL時重定向,則必須將您的301 HTTP響應發送給所有非Facebook搜尋器客戶端。舊網址應該包含自己的og:url標記。「_ – CBroe

回答

0

Facebook也遵循HTTP重定向。您需要將舊的HTTP URL提供給刮板,而不必將其重定向到HTTPS版本。 (刮板可以通過其用戶代理識別,請參閱社交插件常見問題解答。)

舊的HTTP網址都需要提供給刮刀,而不是重定向到HTTPS,作爲常見問題也提到:

「這還要求舊URL仍然使用Open Graph標記呈現文檔,並返回HTTP 200響應,至少當由Facebook的抓取工具加載時。如果您希望其他客戶端在訪問URL時重定向,則必須將您的301 HTTP響應發送給所有非Facebook搜尋器客戶端。舊網址應該包含自己指向自己的og:url標記。「