我有一个博客博客,它的自定义域将在一周内到期。因此,我计划创建一个新博客并将自定义域重定向到新博客域。考虑一下,我的旧域名是old-blog.blogspot.com
,我希望将旧博客的所有链接重定向到我的新地址new-blog.blogspot.com
。那么,有什么方法可以做到吗?
当我在谷歌上搜索时,我读到了关于使用博客条件语句执行此操作的信息,并且应该为每篇文章执行此操作。但是,在我的博客中,我有 200 多篇文章。无论如何?
我有一个博客博客,它的自定义域将在一周内到期。因此,我计划创建一个新博客并将自定义域重定向到新博客域。考虑一下,我的旧域名是old-blog.blogspot.com
,我希望将旧博客的所有链接重定向到我的新地址new-blog.blogspot.com
。那么,有什么方法可以做到吗?
当我在谷歌上搜索时,我读到了关于使用博客条件语句执行此操作的信息,并且应该为每篇文章执行此操作。但是,在我的博客中,我有 200 多篇文章。无论如何?
你可以尝试使用javascript。
将以下代码放入<head>
模板中的标记内。
<script type='text/javascript'>
var d='<data:blog.url/>';
d=d.replace(/.*\/\/[^\/]*/, '');
location.href = 'http://new-blog.blogspot.com'+d;
</script>
这会将用户重定向到新域以及与旧域中相同的帖子 URL。
我做了很多搜索来寻找如何迁移我的 Blogger 帐户,以便:
http://old-url.blogspot.com/bar
,被重定向到http://new-url.com/bar
)。<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 转换运行的,但是您可以使用它作为基础来创建自己的脚本,并避免大量奇怪的博客模板错误消息。
对于可能关闭了 Javascript 的观众(现在很少见,但并非闻所未闻),你可以把
<meta content='0;url=http://your-new-url.tld' http-equiv='refresh'/>
反而。
或者两者都做:)
你必须导入你的博客
单击设置,然后单击其他,然后单击导入博客
接下来保存您的结果下载(XML 文件),然后单击您的新博客,然后单击设置,然后单击其他,然后单击 ekspor 博客,然后上传您的结果下载(XML 文件)完成