301 重定向最佳实践 - 多个站点到单个站点

Posted

技术标签:

【中文标题】301 重定向最佳实践 - 多个站点到单个站点【英文标题】:301 Redirect Best Practices - multiple sites to single site 【发布时间】:2017-08-02 09:35:24 【问题描述】:

我有大约 15 个以上的站点,我们希望删除这些站点并将它们合并到一个站点中(为新站点中的每个站点创建页面)。

应将 15 个以上站点的域重定向到一个站点,如下所示:

a.com -> z.com/a
b.com -> z.com/b
c.com -> z.com/c
.. 

此外,我们希望将(301)页面从旧域重定向到新域以保持页面的排名:

 a.com/about-us     -> z.com/a/about-us
 b.com/about/abouus -> z.com/b/about-s
 c.com/contactus    -> z.com/c/contact-us

超过 15 个站点中的每一个都在自己的服务器上运行,具有不同的平台,而新服务器是 IIS。

目前,我正在考虑两种方法:

    将旧的 DNS 记录指向 z.com 的新服务器,并处理服务器上的所有重定向。

    保持旧站点运行,并在每台服务器上配置重定向规则,将每个页面重定向到新站点上的匹配页面。

哪种方法更好,还有其他方法吗?到目前为止,我认为第一种方法更好,因为我们将在一个地方控制所有重定向 - 但从性能方面来看,它是否会给服务器增加更多麻烦?

【问题讨论】:

【参考方案1】:

情景

您创建了一个新站点,并且希望将所有旧站点 (15+) 重定向到新站点(页面到页面)。

所有旧站点都在不同平台上的自己的服务器上运行,而新站点是 IIS。

您的选择

    将旧的DNS记录指向z.com的新服务器,并处理服务器上的所有重定向。

优势


成本更低 - 您可以删除所有旧站点,并且可以节省服务器成本。 内部重定向。所以,时间会更少

缺点


执行复杂 注意相似页面的冲突(仔细检查重定向路径)
    保持旧站点运行,并在每台服务器上配置重定向规则,将每个页面重定向到新站点上的匹配页面

如果你能负担得起在 15 台服务器上运行 15 个不同站点的成本只是为了重定向,那么只使用这种方法。

只是浪费钱,重定向时间会更长。

【讨论】:

【参考方案2】:

我认为最终你将不得不关闭所有其他网站,因为从长远来看,让 15 个网站保持运行只是为了进行重定向不太可能。

因此,据我了解,问题在于如何在短期内更好地组织迁移到新系统。以下是我对此的看法:

你的系统有多大

您的 QPS 是多少? 您的网站场中有多少页面? 您是否需要为大量页面重新映射 URL? 什么是迁移过程?您会一个接一个地切换您的站点,还是在技术上不可行,并且它们都需要一次切换?

如果我们谈论的是处理 10 QPS 和 1K 页面的系统,或者是处理系统 50K QPS 和 1B 页面我们需要动态重新映射系统负载可能是一个问题,p.2 可能看起来更好

回滚

请注意,中间服务器可以缓存 DNS 记录,如果出现问题需要快速回滚到以前的版本,这可能是个问题

你有什么样的系统

真的可以轻松地从 15 个不同的系统中提取 URL 并将它们放在一个点上,而不会有丢失有价值的东西的风险吗?

易于维护

乍一看,从维护的角度来看,第一种方法看起来更容易,但我不知道您使用什么样的系统以及重定向规则需要多复杂。 如果它们是复杂的动态链接,例如 a.com/product.php?id=1 => z.com/a/iPhone6S 将数百万个这样的 url 移动到一个点可能很棘手

搜索引擎优化

我没有密切关注这个行业,但几年前两者都可以正常工作。我认为值得咨询那些与该行业保持同步的人 - 它变化非常迅速

【讨论】:

【参考方案3】:

您的第一种方法绝对是最好的。

    易于维护 您无需保留旧的基础架构(尽管在第二种情况下您只需要保留重定向前端,如 apache、nginx 或 lighthttpd) 不存在性能风险,因为从一个访问者请求到旧位置、重定向答案和到新位置的请求将依次而不是同时出现。

【讨论】:

一个 10 行的 nodejs 脚本运行足以重定向 xD 不需要完整的网络服务器 感谢您的建议。问题是如果我使用 DNS 重定向,我将能够重定向 a.com/ --> z.com/a/ 吗?这将是一个不改变 DNS 记录 IP 的 DNS 转发,对吗?此外,重定向在 z.com 服务器上会有复杂的逻辑。 @AhmadHarb DNS 只能影响服务器名称解析,它不能重定向到像z.com/a 这样的子文件夹。所以你需要有一个网络服务,它回答a.com的请求,301重定向到z.com/a。所以这是一个 HTTP 重定向。【参考方案4】:

DNS 记录无法进行 HTTP 重定向,这对 SEO 至关重要。要确保您的重定向是 301 HTTP 重定向,您可以使用 sniffer。

答案就是确保您的重定向是 301 HTTP 重定向,这样您就可以正确地进行 SEO。除此之外,这只是品味/架构/金钱而不是标准的问题。

更新

阅读更多:

wikipedia

Bing 和 Google 都建议使用 301 重定向来更改页面的 URL,因为它显示在搜索引擎结果中。

ehow.com

301 重定向是一种移动域的搜索引擎友好方式。 301 重定向域不会导致搜索引擎中的重复内容,因此您不会损害您的搜索引擎排名。使用新的 DNS 设置需要有一个新的域名,但它不会重定向浏览器或搜索引擎。这两种方法都用于移动到新域。

webmasters.stackexchange.com

当相同的内容在两个不同的 URL 上可用时,就会出现重复的内容。为防止 www 与无 www 上的重复内容,请使用 301 重定向将一个重定向到另一个。要实现重定向,需要正确配置网络服务器。只要 DNS 指向网络服务器(CNAME 或 A 记录),就可以正确配置网络服务器。

【讨论】:

【参考方案5】:

几个月前我被这个问题困住了。我想将整个站点重定向到新站点的结构中。旧网站是 .php,我对此一无所知。

我想我会将旧网站的 DNS 指向我的服务器并编写一些 MVC 代码来捕获每个请求,然后使用 vb.net Like 运算符使用一组规则将入站 URL 与我的规则集进行比较.

这是一种享受。我使用大约 10 条规则将 300 多个页面重定向到我的新网站。其中包括更改文件夹结构、一个论坛(主要是垃圾,但有一些很好的问题),以及我实施了一个指向新主页的“笼统”规则,以防我错过了什么。

效果非常好,我已将其打包为商业产品并公开发布。它是免费的,带有来自目标站点的链接(在您的情况下只是单个目标站点)。

https://301redirect.website/

主页上有几个演示视频,几分钟后将解释设置。

【讨论】:

以上是关于301 重定向最佳实践 - 多个站点到单个站点的主要内容,如果未能解决你的问题,请参考以下文章

nginx 301 重定向到不正确的虚拟主机

如何使用 301 重定向而不是 302 将 HTTP 站点重定向到 HTTPS 站点

提高 Web 站点性能的最佳实践

进行此站点重定向的最佳方法是啥

站点技术---301重定向

站点核心 301 重定向 iis 7