2012-04-05 22 views
1

我有一個Facebook的鏈接到女巫的頁面我沒有完全控制:我可以修改<body>,但不是頁面的<head> ... 所以我試圖設置類似按鈕的鏈接上一個我完全控制的新頁面,在這個頁面上設置opengraph元標記,並設置一個鏈接到原始頁面的og:url。是否可以從提取的url中提取元數據而不是規範的url?

但最終Facebook嘗試從og:url中提取元數據並覆蓋上一頁的元標記... 是否有可能告訴我要從第一次提取的url中獲取元數據,而不是從og:url?

回答

4

沒有辦法指示linter從頁面中提取OpenGraph元數據,該頁面的URL與og:url中定義的URL不同。

短絨將始終從鏈的末端,og:url定義URL中提取meta標籤...

有一種方法做其他事(可能或可能不適合你的需求):

您可以創建中間頁面,其中包含指向該頁面的所有OpenGraph(包括og:url)(不是您無法控制的頁面)。該頁面只會將元數據和JavaScript/Meta重定向到最終頁面,因此登錄此中間頁面的用戶將被重定向到正確的最終頁面。

請注意,這會將所有喜歡的內容關聯到「最終」頁面,而不是中間頁面。

+0

謝謝,很好的解決方案!我剛剛在第一個中間頁面提出了JavaScript重定向,它的工作原理...我知道最好把元數據放在最後一頁的頭部,但直到那一天我將無法訪問好! – clarec 2012-04-05 10:22:07

+0

謝謝你,先生。這適用於Javascript單頁面應用程序。 Facebook的抓取工具沒有得到正確的信息,因爲頁面在Javascript中動態地在客戶端呈現,抓取工具只是解析服務器提供的html shell文件。使用這種技術,我做了一個服務器端調用,以我需要的方式呈現元標記,並最終將客戶端重定向到我的Javascript單頁網絡應用程序。完全按照我需要的方式工作。再次感謝! – CodeWarrior 2013-03-06 15:28:22

0

我認爲在Facebook Debug/linter中存在一個錯誤,關於哪個URL可以有OG元數據。您的OG:URL應該是規範的,這意味着這是應該在今天,明天以及十年之後起作用的網址。由於被共享的網址是暫時的,並且網絡開發人員無法保證「獲取」網址將會持續存在。您的canonical/og:url可能會重定向到具有og:tags的最終目標。

但是,FaceBook linter中的錯誤是它沒有遵循重定向過去的og:url。即http://example.com/persistant/123,因爲那可能只是重定向到友好的URL,例如http://example.com/year/month/title/persistant_123。也許FaceBook的某個人可以澄清他們對「應遵循規範URL重定向」的解釋。

谷歌的意見Google Webmaster Blog: Specify your Canonical

可以REL = 「規範」 是重定向?是的,您可以指定一個URL, 重定向爲規範URL。谷歌然後將重定向處理爲 ,然後嘗試對其進行索引。

當前FaceBook Debug/Linter練習一旦到達OG:URL就停止,並且不遵循標準HTTP重定向到達OG標記。我認爲Google對Canonical的定義更多,也就是說,web開發人員期待的標準。