在博客中永久地将旧博客地址重定向到新的博客地址

时间:2013-04-25 14:01:03

标签: blogger

我有一个博客博客,它的自定义域在一周内到期。因此,我计划创建一个新博客并将自定义域重定向到新的博客域。请注意,我的旧域名为old-blog.blogspot.com,我希望将旧博客的所有链接重定向到我的新地址new-blog.blogspot.com。那么,有没有办法呢?

当我用Google搜索时,我读到了使用博客条件语句执行此操作,并且应该针对每个帖子执行此操作。但是,在我的博客中,我有超过200个帖子。有什么方法吗?

4 个答案:

答案 0 :(得分:12)

您可以尝试使用javascript。

将以下代码放在模板中的<head>标记内。

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

这会将用户重定向到新域以及与旧域中相同的帖子URL。

答案 1 :(得分:3)

我做了很多搜索如何迁移我的Blogger帐户,以便:

  1. 旧网址上的每篇博文都会重定向到新网址上的相同博文(例如http://old-url.blogspot.com/bar被重定向到http://new-url.com/bar)。
  2. 您以不会失去SEO等级的方式进行重定向。这意味着JavaScript解决方案(例如,此帖中接受的答案)无法正常工作,因为您需要<link rel="canonical" href="http://new-url.com/bar"/>中的服务器端生成的<head>标记。
  3. 我找不到令人满意的答案,所以为了将来帮助别人,我想我会在这里添加我想出的黑客。你需要hack的原因是博客模板使用了一些允许基本变量查找,循环和if语句的arcane XML syntax,但据我所知,没有办法进行字符串操作来完成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。请注意,这是一个为我的博客定制的非常hacky脚本,它实际上是针对博客XML导出的Jekyll转换运行的,但您可以使用它作为基础来创建自己的脚本并避免许多奇怪的博客模板错误消息。

答案 2 :(得分:1)

对于可能关闭Javascript的观众(这些日子很少见,但并非闻所未闻),你可以把

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

代替。

或两者都做:)

答案 3 :(得分:0)

您必须导入博客

点击设置,然后点击其他,然后点击impor blog

接下来保存结果下载(XML文件),然后单击新博客,然后单击设置,然后单击其他,然后单击ekspor blog,然后上传结果下载(XML文件)完成