dede重定向循环问题如何解决?

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 DEDE建站 正文

这是什么意思?一个简单的比喻

想象一下你开车去一个朋友家:

dede此网页包含重定向循环
(图片来源网络,侵删)
  1. 第一次导航:导航告诉你,从A点开到B点。
  2. 到达B点:你发现B点是一个路口,路牌写着“请前往A点”。
  3. 第二次导航:你只好按照路牌,从B点开回A点。
  4. 到达A点:你发现又回到了起点,路牌还是写着“请前往B点”。

你就会一直在A点和B点之间来回打转,永远到不了朋友家,这就是一个“重定向循环”。

在网络上,A点和B点就是两个不同的网页地址(URL),而路牌就是服务器或网页代码发出的“重定向”指令。


为什么会发生重定向循环?(常见原因)

重定向循环通常是由服务器配置错误、网站代码问题或浏览器/缓存问题引起的,以下是几个最常见的原因:

HTTPS 配置错误(最常见的原因)

这是导致循环重定向的“头号元凶”。

  • 场景:你的网站同时配置了 HTTP 和 HTTPS 两种访问方式,服务器被设置为“如果用户用 HTTP 访问,就自动重定向到 HTTPS”,当用户访问 HTTPS 地址时,服务器因为配置错误(SSL 证书无效、配置文件冲突等),又错误地将其重定向回 HTTP。
  • 结果http://example.com -> https://example.com -> http://example.com -> ... 无限循环。

WordPress 或其他 CMS 的“地址(URL)”设置错误

在使用 WordPress、Joomla 等内容管理系统时,后台的“设置 > 常规”中的“WordPress 地址(URL)”和“站点地址(URL)”设置错误是常见原因。

  • 场景
    • 你将“站点地址”设置为了 https://example.com,但服务器上并没有正确配置 SSL 证书。
    • 或者,你将两个地址都设置为了一个不存在的地址。
  • 结果:浏览器访问一个地址,网站代码又把它重定向到另一个错误的地址,最终形成循环。

服务器配置文件错误(如 .htaccess 文件)

网站根目录下的 .htaccess 文件(主要在 Apache 服务器上使用)可以控制网站的访问规则,错误的重定向规则会导致循环。

  • 场景
    • 一个错误的 RedirectRewriteRule 指令。
    • 一个规则把所有请求重定向到首页,而首页的代码又把请求重定向回原始页面。
    • 强制将所有 HTTP 流量重定向到 HTTPS,但 SSL 证书本身有问题。

插件或主题代码问题

某些网站插件或主题的代码中可能包含重定向逻辑,如果代码有 Bug,也可能引发循环。

  • 场景:一个会员插件在检测到用户未登录时,会将其重定向到登录页,但登录页的代码又因为某种原因,在用户登录前就把他重定向回需要登录的页面。

浏览器缓存或 Cookie 问题

问题不在服务器,而在你的浏览器。

  • 场景:你之前访问过网站的一个旧地址(http:// 版本),浏览器保存了相关的 Cookie 或缓存,当你现在尝试访问时,浏览器或网站的某些脚本读取了这些旧的缓存信息,试图将你重定向到一个不存在的页面,从而触发循环。

代理服务器或防火墙

如果你在公司或学校网络环境中,中间的代理服务器或防火墙可能有错误的规则,它会在你的请求和目标服务器之间进行不正确的重定向。


如何排查和解决?(从易到难)

请按照以下步骤逐一尝试,大部分问题都能在前几步解决。

第1步:检查你的网址

  • 确认你输入的网址是否正确,有没有多余的字符或拼写错误。
  • 尝试删除网址的 www 前缀,或者加上 www 前缀,看看是否能访问。

第2步:清除浏览器缓存和 Cookie(最简单的“万能”方法)

这是解决由浏览器端引起的问题最快的方法。

  • Chrome: 设置 -> 隐私和安全 -> 清除浏览数据 -> 选择“缓存图片和文件”及“Cookie 及其他网站数据” -> 清除数据。
  • Firefox: 设置 -> 隐私与安全 -> Cookie 和网站数据 -> 清除数据。
  • Edge: 设置 -> 隐私、搜索和服务 -> 清除浏览数据。
  • Safari: 偏好设置 -> 隐私 -> 管理网站数据 -> 全部移除。
  • 操作后完全关闭浏览器,然后重新打开,再尝试访问网站。

第3步:检查网址是否使用了 HTTPS

  • 在浏览器地址栏看看网址是不是以 https:// 开头。
  • 如果是,尝试手动将其改为 http://(去掉 's'),然后回车,如果能访问,那几乎可以肯定是 HTTPS 配置错误
  • 如果改为 http:// 后还是不行,那问题可能更深层。

第4步:使用“无痕/隐私模式”访问

  • 打开浏览器的无痕窗口(Chrome 的无痕模式,Edge 的 InPrivate 等)。
  • 在无痕模式下尝试访问该网站。
  • 如果可以访问,说明问题出在你浏览器的某个插件、扩展或缓存上,禁用所有插件,再逐一排查,或者直接重置浏览器设置。
  • 如果仍然不行,说明问题出在服务器端,请继续下一步。

第5步:针对网站管理员(如果你拥有该网站)

如果你是网站的站长或管理员,请根据前面的可能原因进行排查:

A. 检查 WordPress 后台设置

  1. 登录 WordPress 后台。
  2. 前往 设置 > 常规
  3. 仔细检查 “WordPress 地址(URL)”“站点地址(URL)” 这两个选项。
  4. 确保它们都是 https://yourdomain.com 的格式,并且没有多余的空格或斜杠,如果不确定,可以先都改回 http,确保网站能访问后,再配置好 SSL,最后再改回 https

B. 检查 .htaccess 文件

  1. 通过 FTP 或文件管理器连接到你的网站服务器。
  2. 找到网站根目录下的 .htaccess 文件。
  3. 先备份这个文件(非常重要!)。
  4. .htaccess 文件的内容暂时清空,或者重命名为 .htaccess_old
  5. 然后尝试访问网站,如果可以访问了,说明问题就出在这个文件里,你需要仔细检查里面的重定向规则,特别是与 HTTPS 相关的规则。

C. 检查 SSL 证书

  1. 确保你的域名已经正确安装了有效的 SSL 证书。
  2. 你可以使用 SSL Labs Server Test 这个免费工具来检测你的 SSL 配置是否正确,它会告诉你是否存在混合内容、证书链不完整等问题。

D. 禁用插件和主题

  1. 通过 FTP 或文件管理器,将 wp-content/plugins 文件夹重命名为 plugins_old,这会暂时禁用所有插件。
  2. 如果网站恢复正常,说明是某个插件的问题,将 plugins_old 改回 plugins,然后逐一重新启用插件,直到找到问题插件。
  3. 如果禁用插件后问题依旧,尝试切换到默认的 WordPress 主题(如 Twenty Twenty-Four)。

问题现象 可能原因 解决方案
只有我的电脑/浏览器出问题 浏览器缓存、Cookie、插件干扰 清除缓存、Cookie;使用无痕模式;禁用插件。
所有人访问都出问题 服务器配置错误(.htaccess、SSL、CMS设置) 检查 .htaccess 文件;检查 WordPress 后台 URL 设置;检查 SSL 证书。
有时能访问,有时不能 服务器不稳定或代理服务器问题 联系网站主机商或网络管理员。

希望这份详细的指南能帮助你解决“重定向循环”的问题!

-- 展开阅读全文 --
头像
dede自动跳转到移动端代码
« 上一篇 01-20
dede首页如何调用指定文章内容?
下一篇 » 01-20

相关文章

取消
微信二维码
支付宝二维码

目录[+]