[Blogger] 無預警轉換區域網址的影響及因應之道

看板Blog (部落格)作者 (天璣)時間13年前 (2012/06/04 18:40), 11年前編輯推噓5(502)
留言7則, 5人參與, 最新討論串1/1
※ 引述《WFU (天璣)》之銘言: : ※ 引述《nikolu (Niko)》之銘言: : : 今天才突然發現到 網址的最後面多了一些詭異的字串 : : 像我的是在後面多了#.T8epkdUtiKI 有人有遇到一樣的情況嗎? : 是的,從今天開始,我們的 blogger 被無預警轉址了,從 blogspot.com --> : blogspot.tw : 看起來沒什麼,其實影響層面很大,以下為個人觀察: : 1. blogger 如果有使用 json 抓取後台資料的 hack,某些會產生影響,以前會去 : 抓 xxxx.blogspot.com 的資料,現在必須抓 xxxxx.blogspot.tw 才抓得到。不過 : 並不是每個 hack 都會有影響。 : 2. 讚按鈕全部歸零,因為網址變了,再也讀不到舊網址 .com 的讚按鈕統計, : 只能從新網址 .tw 全部重來。 網頁好讀版: http://www.wfublog.com/2012/06/blogger.html 因為自己的 blog 很多部分受到影響,所以找了一些資料統整一下所有的問題及因應方 案,以下內容為整理一些國外網站的重點: 一、受影響、不受影響的人 只要是自訂網址的網頁,就不會被 Google 自動轉址;只要非自訂網址,就會被自動轉 址。 二、自動轉址產生的問題及對策 會造成的問題,全部都是從真實網址(Canonical URLs)被轉換成區域網址 country code Top Level Domain(ccTLD)所引起: 1. 搜尋引擎問題: 這個網頁「http://ppt.cc/3nFq」建議所有 blogger 第一個要做的動作,是到後台 檢查範本中有沒有下面這一行: <b:include data='blog' name='all-head-content'/> 這一行的作用是定位出網站的真實網址。如果沒有這一行,搜尋引擎機器人將來會定位 到錯誤的網址,並且 Facebook 讚、Google +1 都無法找到真實網址來儲存統計數據。 2. Facebook 外掛工具問題: 其實 Facebook 外掛工具的數據、資料,都是依據真實網址 ABCD.blogspot.com 來儲 存(前提是範本中有第 1 點的程式碼),並不會儲存到 ABCD.blogspot.tw 這樣的轉址。 但是目前的頁面被轉址到 ABCD.blogspot.tw 這個網址後,Facebook 會去資料庫搜尋 ABCD.blogspot.tw 這個網址有幾個讚,結果發現沒有資料(也就是數目為0),所以我們 會發現 "讚" 統計資料被歸零了。 解決方法:根據「http://ppt.cc/3nFq」,將 Facebook 外掛工具中的程式碼 data:post.url 都置換成 data:post.canonicalUrl,那麼不管訪客在 ABCD.blogspot.tw 或是 ABCD.blogspot.fr,Facebook 都會去找真實網址 ABCD.blogspot.com 的統計資料,就能讓 "讚" 統計、其他 Facebook 外掛工具的 數據正常了。 3. Google +1 外掛: 不用任何更改,自家產品當然會把後台資料改好。 4. 其他社交外掛工具問題: 「http://ppt.cc/3nFq」表示,大部分的其他社交外掛工具儲存數據時,並不會根據 真實網址,所以多半會出錯(會存到轉址去)。 解決方法:所以只能找找看安裝的程式碼有沒有 data:post.url 這樣的字串,有的話 置換成 data:post.canonicalUrl;另外也要尋找有沒有 data:blog.url 這樣的字串, 有的話置換成 data:blog.canonicalUrl。 5. 其他外掛問題: 如果有用任何外掛需要讀取資料庫的,或是把 Google 試算表當資料庫,以前儲存的 資料都是用 ABCD.blogspot.com 來當索引,現在就會面臨轉址後,在 ABCD.blogspot.tw 的頁面讀不到真實網址 ABCD.blogspot.com 的索引資料。 解決方法:同上面第 4 點,修改 js 程式碼的訣竅為,原本在儲存的時候如果用 top.location.href 來當索引網址,現在必須修改為 "<data:post.canonicalUrl/>" 或 "<data:blog.canonicalUrl/>";同時讀取資料庫時,也要做同樣的動作,把 top.location.href 改為 "<post.canonicalUrl/>" 或 "<data:blog.canonicalUrl/>" ,這樣就沒問題了。 五、不讓 Blogger 轉址的方法 1. 方法:根據「http://ppt.cc/oePi」,Google 提供了 "暫時" 強制 blogger 不要轉 址的功能,例如: 首頁:ABCD.blogspot.com/ncr 單篇文章:ABCD.blogspot.com/ncr/EFGH.html 如同以上兩個範例,在網址加上 ncr(/) 以後,就可以不被轉址。請注意,這是"暫時" 的,表示過一陣子 Google 就會取消這個功能,所以這陣子該做的動作要趕快完成。 2. 實際應用:自己手動改網址,並無法讓訪客的網址不被轉址,因此必須改範本中的程 式碼,讓訪客的網址也不被轉址。根據這個網頁「http://ppt.cc/iTYG」,用正規表示 式四行程式碼就搞定了(URL = URL.replace這一行跟下一行要合併為一行),請在範本 中的 <head> 之後加入以下程式碼: <script type='text/javascript'> (function(){ if( document.URL.match(/\.blogspot\.(com\...\/|..\/)/) ){ var URL = document.URL; URL = URL.replace(URL.match(/\.blogspot\.(com\...\/|..\/)/)[0],&quot;.blogspot.com\/ncr\/&quot;); document.location = URL; } })() </script> 存檔後即可看到效果,使用以上語法後,就可讓網站恢復正常狀態,先正常運作避免讓 訪客看到異常現象,再來一個一個解決其他自動轉址產生的問題。由於本篇內容很長, 更多其他個人感想請參考:http://ppt.cc/ArCh。 ---- Blogger 調校資料庫 http://www.wfublog.com/ ---- ※ 發信站: 批踢踢實業坊(ptt.cc)

06/04 20:32, , 1F
結果 自訂網域 多出贅字的問題 還是沒人遇到 -.-?
06/04 20:32, 1F

06/04 21:30, , 2F
我有4個網域掛blogger 沒有任何改變~
06/04 21:30, 2F

06/05 01:54, , 3F
推一下 很詳細的介紹 提醒一下如果fb留言外掛的也可能要改 :)
06/05 01:54, 3F

06/10 16:33, , 4F
第一點家的那行是要放在後台範本裡的最後面嗎?
06/10 16:33, 4F

06/10 17:07, , 5F
你那一行沒有嗎?通常範本開頭 <head> 頭幾行就會找到了
06/10 17:07, 5F

06/10 17:08, , 6F
沒有的話一樣放在 <head> 開頭幾行就行了
06/10 17:08, 6F

06/10 21:26, , 7F
有看到了 謝謝樓上
06/10 21:26, 7F
※ 編輯: WFU (118.165.24.181), 05/21/2014 08:53:25
文章代碼(AID): #1Fp92pQQ (Blog)
文章代碼(AID): #1Fp92pQQ (Blog)