301 将 Blogger 重定向到另一个主机并保持 Google 排名

301 redirect Blogger to another Host and keep Google rank

首先,对于任何拼写错误,我深表歉意。我是法国人。

我希望得到你的帮助,可能有一个简单的修复,但我没有找到任何特定于我的情况。

解释

我在 Blogger 平台上有一个网站,在 Godaddy 上注册了大约两年的域名。但是现在,由于这个平台的许多限制,我在那里不开心。我在这个博客中发表和索引了大约 300 post。

好吧,我刚刚为自己创建了一个静态网站(有许多 HTML 文件和一些 CSS/JS)并在 Godaddy 上购买了一个 Linux 主机(带 cPanel 的豪华版) .我在父域(指向 Blogger)中创建了一个子域来测试这个新的静态站点。一切正常,准备就绪...

问题

正如我所说,我已经为 300 post 建立了索引。我为所有这些 Blogger post 创建了新的 HTML 文件,按照我想要的方式,使用友好的 URL 和其他定制。为什么? Blogger 像这样显示我的链接:"mywebsite.com/2010/06/post-name.html." 我对这个新站点的意图是做类似 "mywebsite.com/post-name.html" 的事情。我已经在子域中设置了路径和其他所有内容。

我的问题是:如何在不丢失 Google 排名和 "bypass" 访问旧链接时出现 404 Not Found 错误的情况下,将流量从旧站点 (Blogger) 重定向到新站点?

我在 Google 上进行了几次搜索,但只找到了说明如何在将 Blogger 迁移到 Wordpress 时执行此操作的教程。

我知道我不能只删除 Blogger 上的这个网站,(也许)可以在 .htaccess 文件中做一些事情来解决它。我现在必须 "close" Blogger 并使用 301 重定向将访问者重定向到新主机,以防止 Google 惩罚我重复的内容,对吗?

谷歌搜索,我找到了这段代码:

   <b:if cond='data:blog.url == &quot;http://example.com/2013/01/post-name.html&quot;'>
<meta content='0;url=http://example/post-name.html' http-equiv='refresh'/>
</b:if>

但这是一个 Blogger 到 Wordpress 的教程。

上面的代码可以应用于我的情况吗?或者我应该在 .htaccess 中通过 post 创建一个重定向 post?

感谢任何建议和帮助。

如果您的域之前指向 blogger,并且将来会指向您的新服务器,那么所有未来的请求都将自动到达您的新服务器。因此,您所要做的就是设置将所有“旧”URL重写到新服务器上的新目标。

使用您在评论中提到的 Redirect 指令,您应该能够实现。使用此技术,您将需要为每个要重定向到新的 URL 的旧 Redirect 使用 Redirect

如果 所有 的旧 URL 都遵循 /yyyy/mm/post-name.html 的模式,而所有新的 URL 都只是 /post-name.html 而 post 名称仍然相同,您可能想使用 RewriteRule 代替:

RewriteEngine On
RewriteRule ^([0-9]{4})/([0-9]{2})/(.*)$ / [R=301]

这将匹配所有以四位数字开头的传入请求(领先的斜杠在那时已经被删除),后跟一个斜杠,然后是两位数字和另一个斜杠,然后只是“任何东西” ”之后,并将其重定向到那个“任何东西”。它将自动以协议和服务器名称为前缀。 [R=301] 标志将使它成为一个带有 301 状态代码的重定向。

这样一来,您可以只用一个规则捕获所有那些旧的 post URL,而不必为每个单独编写 Redirect 语句。

(如果您需要有关其工作原理的更多信息,请先参阅 mod_rewite documentation。)

如果您尝试将一个 url 重定向到现有页面上的另一个域

like http://some-domain.com/2017/abc.html to http://another-domain.com/2017/abc.html

您可以使用以下 javascript

<script>
var url = location.href;
var newurl = url.replace('some-domain.com','another-domain.com';);
location.href=newurl;

</script>