2013-04-25 143 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