10

我有一个博客博客,它的自定义域将在一周内到期。因此,我计划创建一个新博客并将自定义域重定向到新博客域。考虑一下,我的旧域名是old-blog.blogspot.com,我希望将旧博客的所有链接重定向到我的新地址new-blog.blogspot.com。那么,有什么方法可以做到吗?

当我在谷歌上搜索时,我读到了关于使用博客条件语句执行此操作的信息,并且应该为每篇文章执行此操作。但是,在我的博客中,我有 200 多篇文章。无论如何?

4

4 回答 4

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。

于 2013-04-25T14:56:08.350 回答
3

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

  1. 旧 URL 上的每篇博文都被重定向到新 URL 上的同一篇博文(例如http://old-url.blogspot.com/bar,被重定向到http://new-url.com/bar)。
  2. 您以不会失去 SEO 排名的方式进行重定向。这意味着 JavaScript 解决方案(例如本文中接受的答案)将不起作用,因为您需要<link rel="canonical" href="http://new-url.com/bar"/><head>.

我没有找到令人满意的答案,所以为了将来帮助其他人,我想我会在这里添加我想出的技巧。您需要 hack 的原因是博客模板使用一些神秘的 XML 语法,允许基本的变量查找、循环和 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 语句(可能有数百个)。相反,您可以将 Blogger 帖子导出到 XML 文件并编写一个简单的脚本来读取该文件中的每个 URL 并生成上面的 if 语句。我写了一篇关于从Blogger 迁移到 GitHub Pages的博客文章,其中解释了所有血腥的细节,并且我用来生成 if 语句的 Ruby 脚本在 GitHub 上可用。请注意,这是为我的博客定制的一个非常 hacky 的脚本,它实际上是针对博客 XML 导出的 Jekyll 转换运行的,但是您可以使用它作为基础来创建自己的脚本,并避免大量奇怪的博客模板错误消息。

于 2015-04-20T17:58:22.160 回答
1

对于可能关闭了 Javascript 的观众(现在很少见,但并非闻所未闻),你可以把

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

反而。

或者两者都做:)

于 2014-03-08T02:24:40.860 回答
0

你必须导入你的博客

单击设置,然后单击其他,然后单击导入博客

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

于 2013-05-10T11:17:48.583 回答