2013-04-25 109 views
10

我有一個博客博客,它的自定義域在一週內過期。所以,我計劃創建一個新的博客,並將自定義域重定向到新的博客域。考慮一下,我的舊域名是old-blog.blogspot.com,我希望將所有舊博客的鏈接重定向到我的新地址new-blog.blogspot.com。那麼,有沒有辦法做到這一點?在博主中將舊博客地址永久重定向到一個新的博客地址

當我搜索了一下,我讀了關於如何使用博客條件語句來做這件事,並且應該爲每篇文章完成。但是,在我的博客中,我有超過200個帖子。無論如何?

回答

11

你可以嘗試使用JavaScript。

<head>標籤中的以下代碼放入模板中。

<script type='text/javascript'> 
    var d='<data:blog.url/>'; 
    d=d.replace(/.*\/\/[^\/]*/, ''); 
    location.href = 'http://new-blog.blogspot.com'+d; 
</script> 

這將用戶重定向到新的領域,並在同一帖子的網址爲舊域。

+0

完美工作......感謝 – 2013-04-25 14:59:30

+1

此解決方案不適用於博主動態視圖。它應該是別的嗎? – 2014-05-29 16:52:45

+0

任何人都可以解釋正則表達式嗎?我想稍微改變一下。 – sumitkanoje 2015-04-22 20:06:15

0

必須導入您的博客

點擊設置,然後點擊對方,然後單擊祁門功夫博客

下一頁保存您的結果下載(XML文件),然後單擊您的新博客,然後單擊設置,然後單擊其他然後點擊ekspor博客然後上傳你的結果下載(XML文件)完成

+0

這隻解釋了從一個博客更改帖子到另一個,但是,我問了重定向。 – 2013-05-10 14:07:47

+0

Zhinto 2013-05-11 14:47:04

1

對於誰可能已關閉JavaScript(這是罕見的,這些天,但不是聞所未聞的)觀衆,你可以把

<meta content='0;url=http://your-new-url.tld' http-equiv='refresh'/> 
改爲

或者兩者都做:)

3

我做了很多搜索如何處理我的Blogger帳戶遷移,這樣的:

  1. 每篇博客文章在老網址被重定向到同一個博客帖子上新的URL(例如http://old-url.blogspot.com/bar被重定向到http://new-url.com/bar)。
  2. 您以不失去SEO排名的方式進行重定向。這意味着JavaScript解決方案(例如本文中接受的答案)將不起作用,因爲您需要<head>中的服務器端生成的<link rel="canonical" href="http://new-url.com/bar"/>標記。

我發現沒有令人滿意的答案,所以爲了幫助未來的其他人,我想我會添加我在這裏想到的黑客。你需要一個黑客的原因是博客模板使用一些arcane XML syntax,它允許基本的變量查找,循環和if語句,但據我所知,沒有辦法做字符串操作來完成需求中的URL轉換# 1以上。要解決這個問題,您可以生成一個硬編碼的if語句列表,用於檢查您關心的每個可能的URL並將其重定向到適當的位置。沿着線的東西:

<b:if cond='data:blog.canonicalUrl == "http://old-url.blogspot.com/url1"'> 
    <link rel="canonical" href="http://new-url.com/url1"/> 
    <meta http-equiv="refresh" content="0; url=http://new-url.com/url1"/> 
<b:elseif cond='data:blog.canonicalUrl == "http://old-url.blogspot.com/url2"'/> 
    <link rel="canonical" href="http://new-url.com/url2"/> 
    <meta http-equiv="refresh" content="0; url=http://new-url.com/url2"/> 
<b:elseif cond='data:blog.canonicalUrl == "http://old-url.blogspot.com/url3"'/> 
    <link rel="canonical" href="http://new-url.com/url3"/> 
    <meta http-equiv="refresh" content="0; url=http://new-url.com/url3"/> 
<!-- And so on, one if-statement per blog post --> 

如果你能做到基本的腳本,你不必產生這些if語句(並且可能有數百個)的手。相反,您可以將export your Blogger posts添加到XML文件中,然後編寫一個簡單的腳本來讀取該文件中的每個URL並生成上面的if語句。我寫了一篇關於從Blogger to GitHub Pages遷移的博客文章,我在這裏解釋了所有的血腥細節,並且我用於生成if語句的Ruby腳本可用於on GitHub。請注意,這是一個爲我的博客定製的非常冒險的腳本,它實際上是針對博主XML導出的Jekyll轉換運行的,但您可以將其用作創建自己的腳本的基礎,並避免大量奇怪的博客模板錯誤消息。

+1

謝謝。我最終採取了與之相同的方式,我只寫了自己的博客模板生成器以及簡化html文件並在F#中創建md文件的腳本:[gist](https://gist.github.com/hoonzis/de264faa619c9390eb97) – hoonzis 2015-07-01 13:48:57

+1

超級有用,謝謝。我必須做的其他事情是在我的'_config.yml'中設置'timezone:'America/Chicago'',否則GH Pages會將帖子放入基於UTC的文件夾中,而UTC並不總是與腳本生成的日期相匹配。我也可以用'TZ ='「'來運行腳本來匹配GH頁面,不同的人會對哪個更正確有不同的看法。 – 2016-07-25 03:34:49