首页 / SEO book / 网站架构与迁移 / 重定向次数过多错误修复

什么是“重定向次数过多”错误?以及如何修复它

重定向次数过多错误修复网站架构与迁移

“ERR_TOO_MANY_REDIRECTS”意味着浏览器陷入了重定向循环,无法加载页面。

什么是“重定向次数过多”错误?

“重定向次数过多”错误意味着网站配置了错误的重定向,形成了无限循环,导致页面无法加载。这会损害 SEO 和用户体验,因为搜索引擎和用户都将无法访问该页面。

例如,假设 URL X 重定向到 URL Y,随后 URL Y 又重定向回 URL X。

这就形成了一个循环。浏览器会在这两个页面之间来回跳转,直到放弃。

两个网页之间的重定向循环——页面 A 重定向到页面 B,页面 B 又重定向回页面 A——形成无限循环

大多数浏览器最多会跟随大约 20 次重定向。如果到那时仍无法到达最终页面,它们就会停止并显示错误。

例如,Chrome 会提示此网站重定向次数过多,并建议清除 Cookie。

Chrome 上的一个失效页面,错误消息为“此页面无法正常工作”,原因是该网站将用户重定向了太多次。

是什么导致了“重定向次数过多”错误?

“重定向次数过多”错误由浏览器陷入循环导致,这个循环不断绕圈却始终无法到达最终页面。

Dan Taylor 是 SALT.agency 的合伙人兼技术 SEO 负责人,他说自己最常见到的原因是 Cookie 或缓存管理不当。

“根据我的经验,问题通常出在缓存或 Cookie 上——比如会话亲和性、会话控制或不正确的缓存控制标头。十年前,当 HTTPS 的采用还更多是‘炒作’时,HTTP/HTTPS 协议的变化会引发冲突,但如今这种情况已少见得多。”

以下是重定向循环背后其他一些常见原因:

  • 过时的服务器缓存:服务器可能仍在展示网站的旧版本,其中包含已损坏的重定向指令
  • 内容分发网络(CDN)缓存问题:CDN 可能在提供带有错误重定向规则的过时版本网站
  • 第三方工具或插件:如果两个工具(例如防火墙和某个插件)试图以不同方式处理重定向,它们就可能产生冲突

如何检查你的网站是否存在“重定向次数过多”错误

可以通过在不同浏览器中访问网站,手动检查 ERR_TOO_MANY_REDIRECTS 错误。

Dan 说他的第一步是直接检查重定向规则:

“我会先检查 .htaccess 或服务器配置文件,确保其中没有冲突或错误的重定向规则。”

然后,他会检查 HTTP 与 HTTPS 页面之间,以及 www 与非 www 页面之间的重定向是否设置得当且一致。

可以使用 Semrush 网站审计工具抓取网站,发现由错误配置规则导致的重定向问题:

打开该工具,按照提示配置项目。

审计完成后,进入“问题”标签页,搜索“redirect(重定向)”。

Site Audit 上的问题,已输入“redirect”,“1,632 redirect chains and loops”错误已高亮显示。

如果网站存在重定向循环(和/或重定向链),会看到“# 重定向链和循环”错误。

点击它即可查看受影响的 URL 列表。

存在重定向链和循环错误的页面列表,以及初始重定向 URL、最终目标 URL、重定向类型和长度。

需要注意的是,这只专门揭示由错误重定向规则导致的循环。

其他问题也可能带来阻碍。所以让我们逐一介绍如何修复它们。

修复“重定向次数过多”错误的 8 种方法

1. 清除浏览器缓存和 Cookie

清除缓存和 Cookie 可以移除过时的数据,这些数据可能导致浏览器加载旧的重定向路径。

Dan 说他在调试重定向循环时总是会包含这一步:

“我会清除浏览器中的缓存和 Cookie,以排除任何可能导致循环的已存储重定向数据。”

如果自己看到该错误而其他人没有,或者只有一个用户报告了该问题而其他人都不受影响,这是一个不错的入手点。

以下是不同浏览器中的操作步骤:

Google Chrome

点击右上角的三个点,然后选择“设置”。

点击 Chrome 浏览器右上角的三个点图标,并从列表中选择“Settings”。

导航到“隐私和安全”,然后点击“删除浏览数据”。

Chrome 上的“Privacy and security”设置,点击了“Delete browsing data”。

同时勾选“Cookie 及其他网站数据”和“缓存的图片和文件”旁边的复选框。可以取消勾选“浏览记录”旁边的框。

将时间范围设为“时间不限”。然后点击“删除数据”。

Chrome 上的“Delete browsing data”窗口,已点击“Delete data”。

Firefox

点击右上角的菜单按钮(三条线),然后选择“设置”。

点击 Firefox 浏览器右上角的三条线图标,并从列表中选择“Settings”。

转到“隐私与安全”,向下滚动到“Cookie 和网站数据”部分,然后点击“清除数据…”

Firefox 上的“Privacy and Security”设置,点击了“Cookies and Site Data”下的“Clear Data...”。

勾选“Cookie 和网站数据”以及“临时缓存的文件和页面。”旁边的复选框。其他选项可以保持不勾选。

将时间范围选择为“全部”。然后点击“清除”。

Firefox 上的“Clear browsing data and cookies”窗口,选中了 Cookies 和站点数据以及临时缓存文件和页面。

Safari

点击顶部菜单中的“Safari”标签,然后选择“设置…”

点击浏览器顶部菜单中的“Safari”按钮,并从列表中选择“Settings”。

转到“高级”标签页,并启用“显示网页开发者功能”。

Safari 设置中的“Advanced”标签页,勾选“Show features for web developers”框。

点击顶部菜单中新出现的“开发”标签,然后选择“清空缓存”。

在 Safari 顶部菜单中点击了“Develop”,并从下拉列表中选中了“Empty Caches”。

要清除 Cookie,请再次进入设置。

转到“隐私”标签页,点击“管理网站数据…”

Safari 设置中的“Privacy”标签页,点击了“Manage Website Data...”。

点击“全部移除”,然后在出现提示时点击“立即移除”进行确认。

Safari 上的“Manage Website Data”窗口,点击了“Remove All”,随后在提示时点击了“Remove Now”。

Microsoft Edge

点击角落的三个点,然后选择“设置”。

点击 Microsoft Edge 浏览器右上角的三条线图标,并从列表中选择“Settings”。

在侧边栏中转到“隐私、搜索和服务”。点击“清除浏览数据”。

Edge 上的“Privacy, search, and services”窗口,点击了“Clear browsing data”。

勾选“Cookie 及其他网站数据”和“缓存的图片和文件”旁边的复选框。其他框可以保持不勾选。

将时间范围选择为“时间不限”。点击“立即清除”。

Edge 上的“Delete browsing data”窗口,点击了“Clear now”。

2. 从 CMS 中清除你的网站缓存

清除网站缓存可以移除内容管理系统(CMS)或插件可能仍在提供的过时重定向指令。

如果使用 WordPress,可能安装了像 WP Super Cache 这样的缓存插件。

要使用该插件清除缓存,请进入 WordPress 仪表盘,点击左侧菜单中的“设置”,然后在子菜单中选择“WP Super Cache”。

在 WordPress 上从“Settings”子菜单中点击的“WP Super Cache”。

向下滚动找到“Delete Cached Pages(删除缓存页面)”部分,然后点击“Delete Cache(删除缓存)”按钮。

在 WordPress 上,点击“Delete Cached Pages”区块中的“Delete Cache”按钮。

如果使用其他 CMS,请按照相应的帮助文档中的步骤操作:

3. 从你的服务器清除缓存文件

清除服务器缓存可确保服务器不会使用带有重定向错误的过时文件。

大多数主机服务商都提供通过其控制面板清除服务器缓存的工具。

假设你使用 Kinsta 托管一个 WordPress 网站。

进入仪表盘,点击“WordPress sites(WordPress 网站)”,然后勾选网站旁边的复选框。

点击右上角的“Actions(操作)”按钮,然后选择“Clear cache(清除缓存)”。

Kinsta 仪表盘,已选中两个 WordPress 站点,点击“Actions”,并从列表中选择“Clear cache”。

勾选“Clear server cache(清除服务器缓存)”旁边的复选框,然后点击“Clear cache(清除缓存)”。

Kinsta 上的“Clear cache”窗口,勾选了“Clear server cache”旁的复选框并点击了“Clear cache”。

其他主机服务商也内置了与缓存相关的工具。如果遇到困难,请联系服务商支持团队寻求帮助。

4. 从你的 CDN 清除旧的重定向

内容分发网络(CDN)通过在世界各地保存网站的副本来加快其速度。但如果这些副本带有旧的重定向设置,它们可能会持续引发循环。

假设你使用 Cloudflare 作为 CDN。

进入 Cloudflare 仪表盘,选择账号和网站,点击左侧菜单中的“Caching(缓存)”,然后选择“Configuration(配置)”。

Cloudfare 仪表盘,已从“Caching”子菜单中选中“Configuration”。

点击“Purge Everything(清除所有内容)”。

Cloudfare 上的“Configuration”设置,点击了“Purge Everything”。

对于其他 CDN,请按照相应的文档操作:

5. 检查与 HTTPS 相关的问题

确保正确实施了 SSL 证书(它验证网站的身份,并使你能够使用 HTTPS),并且在没有证书的情况下不试图强制启用 HTTPS,这样可以修复重定向循环。

使用像 SSL Shopper 这样的 SSL 检查工具,确认证书有效且安装正确。

在 SSL Checker 上输入的域名,显示 SSL 证书的详细信息,如颁发者、到期时间、所列域名等。

如果存在问题,请向主机服务商寻求帮助。

也可以使用 Semrush 网站审计工具发现 HTTPS 问题。

转到“概览”报告,找到 HTTPS 部分,然后点击“查看详情”。

Site Audit Overview 点击“HTTPS”下的“View details”。

延伸阅读:如何将 HTTP 重定向到 HTTPS(4 种方法)

6. 审查并修复重定向规则

相互冲突的重定向规则可能形成循环,从而触发 ERR_TOO_MANY_REDIRECTS 错误。

可以在网站审计问题报告中看到这些循环:

存在重定向链和循环错误的页面列表,以及初始重定向 URL、最终目标 URL、重定向类型和长度。

要解决这个问题,请使用当初用来设置这些规则的工具或平台,更新或移除相互冲突的重定向规则。

这可能是一个插件、CMS 设置,或一个服务器配置文件。

例如,如果在 WordPress 中使用 Redirection 插件,可以在该插件的仪表盘中查看所有生效的重定向规则。

编辑或删除任何导致循环的规则。

WordPress 上的“Redirection”插件仪表盘,含编辑、删除或禁用导致重定向循环规则的选项。

如果使用 Apache 服务器,重定向规则可能位于一个名为 .htaccess 的文件中。

可以重置这个文件以移除有问题的规则。

但只有在你对自己编辑服务器文件有信心,或能获得开发者帮助的情况下才这样做。

要重置它,请通过主机服务商的文件管理器访问网站文件,或使用 FTP 连接。

假设你使用的是 Bluehost。进入 cPanel,点击“File Manager(文件管理器)”。

Bluehost 仪表盘中的“Advanced”标签页,在“Files”下选择“File Manager”。

导航到网站的根目录(通常名为“public_html”、“www”或“htdocs”)。

在 cPanel 上从“File Manager”左侧菜单中选中的“public_html”。

找到 .htaccess 文件

在编辑之前,先下载一份副本进行备份。右键点击该文件,然后选择“Download(下载)”。

在 cPanel 上右键点击“.htaccess”文件,从出现的选项中选择“Download”。

然后,再次右键点击 .htaccess 文件,选择“Edit(编辑)”。

在 cPanel 上右键点击“.htaccess”文件,从出现的选项中选择“Edit”。

将全部内容替换为这份默认的 WordPress .htaccess 配置:

保存更改,并检查重定向错误是否已解决。

如果网站使用 Nginx 或其他服务器类型,请联系主机服务商或开发者寻求帮助。

7. 检查你的 CMS 中的 URL 设置

当 CMS 使用网站 URL 的两个略有不同的版本时,就可能发生重定向循环。

如果使用 WordPress,请转到“设置” > “常规”。

查看“WordPress 地址(URL)”和“站点地址(URL)”字段。它们应当一致。

WordPress 设置中突出显示的“WordPress Address (URL)”和“Site Address (URL)”字段。

例如:

  • 如果其中一个使用 http://,而另一个使用 https://,就可能形成循环
  • 如果其中一个包含“www”而另一个不包含,这种不一致也可能触发该错误

更新这两个字段使之一致。

如果使用其他平台,请查看它们的帮助文档,了解如何更新网站的主 URL。

更新这些设置后,保存更改。

8. 停用或调整插件与扩展程序

如果使用 CMS,所安装的某个插件或扩展程序可能在制造冲突。

停用它们,以找出哪一个可能是罪魁祸首。

在 WordPress 中,转到“插件” > “已安装的插件”,然后勾选每个插件旁边的复选框。

WordPress 上的“Installed Plugins”,所有插件旁的复选框都已勾选。

选择“批量操作”下拉菜单,选择“停用”,然后点击“应用”。这会关闭所有插件。

WordPress 上的插件页面,已点击“Bulk Actions”,从下拉列表中选择“Deactivate”,并点击“Apply”。

如果错误消失了,那么其中一个插件就是元凶。

逐个重新启用插件。每启用一个就检查一次网站,以找出制造循环的那一个。

如果使用其他 CMS 或网站平台,也可以采用类似的流程。

一旦找到导致问题的插件,考虑换用替代方案,并将情况告知该插件的开发者,以便他们进行调查。

如何在将来预防“重定向次数过多”错误

通过在将更改推送到线上之前仔细测试,可以预防大多数重定向循环。

Dan 建议,每当进行会影响 URL、重定向、Cookie 或资源交付的部署时,都要做好充分的 QA 和分析。

这意味着在更改后审查 URL、重定向、Cookie 和资源交付的处理方式,以便在它们引发循环之前发现任何异常行为。

如何做?

  • 手动检查常见的重定向路径。在更新网站后,访问关键页面,检查重定向是否指向正确的目标,而不会在各个版本之间来回跳转。并尝试多种浏览器和设备。
  • 检查插件或自定义脚本。确保这些选项不会导致重定向问题。有些工具会设置自己的规则,这可能意外地造成冲突并导致循环。
  • 在网站发生重大变化后审计重定向。诸如改版、迁移或域名更新之类的事情,可能会无意中造成重定向循环。因此,在任何重大更新后,使用 Semrush 网站审计工具运行一次全站审计,以发现重定向循环。

还应该定期对网站进行一次全面的技术审计,以便在问题损害 SEO 排名或自然流量之前发现它们。

现在就运行第一次审计。