标签: url重定向

  • 如何更改您的WordPress网站URL地址

    如何更改您的WordPress网站URL地址

    您的WordPress地址和网站地址(或URL)非常重要,因为它们引用了您网站在网络上的地址以及您网站文件和管理屏幕的位置。

    您可能需要或想要更改WordPress URL的原因有很多。也许您正在更改域移动到子域、从www更新到非www、移动文件,甚至从HTTP迁移到HTTPS

    无论是哪种情况,在更改URL时都有一些选项,其中一些选项比其他选项更高级。

    在本指南中,我们将向您展示可用于更改WordPress安装URL和WordPress站点URL的不同方法,这是两个不同的东西。

    1. 通过管理仪表盘更改WordPress URL
    2. 在wp-config.php文件中更改WordPress URL
    3. 直接在数据库中更改WordPress URL
    4. 使用WP-CLI更改WordPress URL
    5. 更改WordPress登录URL
    6. 更改WordPress网址后的重定向

    通过管理仪表盘更改WordPress URL

    第一种也是最常见的方法是直接从管理仪表盘中更改您的WordPress URL 。在管理菜单中,转到设置 > 常规以访问常规设置屏幕。然后,您可以更新以下内容:

    • WordPress地址 (URL):到达您网站的地址。
    •  站点地址 (URL):您的WordPress核心文件的地址。

    常规设置 – WordPress URL

    常规设置 – WordPress URL

    除非您为WordPress提供自己的目录,否则两者都应该匹配。请记住,单击Save Changes后,您的WordPress仪表盘现在只能通过新URL访问。因此,请务必检查您输入的URL是否正确。

    如果您不小心输入了错误的 URL,您可以通过编辑wp-config.php文件来覆盖管理屏幕中的设置(请参阅下面的下一个方法)。

    注意:如果上面的字段显示为灰色,很可能是因为您的wp-config.php文件中已经有硬编码的值。在这种情况下,跳转到下一个方法。

    在wp-config.php文件中更改WordPress URL

    更改WordPress URL的第二种最常用方法是在wp-config.php文件中。重要的是要注意wp-config.php中的值会覆盖WordPress管理屏幕中的设置。

    如果这些字段不可编辑(如下所示),很可能是因为它们在此文件中被硬编码。

    常规设置URL灰显

    常规设置URL灰显

    wp-config.php文件通常位于WordPress站点的根目录中,可以通过FTP、SSH或WP-CLI访问。

    在您的wp-config.php文件中,将这两行添加到告诉您停止编辑的行上方的某处:

    define( ‘WP_HOME’, ‘http://yoursiteurl.com’ );
    define( ‘WP_SITEURL’, ‘http://yoursiteurl.com’ );
    define( ‘WP_HOME’, ‘http://yoursiteurl.com’ );
    define( ‘WP_SITEURL’, ‘http://yoursiteurl.com’ );
    define( 'WP_HOME', 'http://yoursiteurl.com' );
    define( 'WP_SITEURL', 'http://yoursiteurl.com' );

    保存您的wp-config.php文件并关闭它。

    当您进入WordPress管理后台的常规设置屏幕时,您会看到这两个字段现在显示为灰色。除非您从wp-config.php中删除这两行,否则您无法编辑它们。

    如果您想再次访问仪表板中的这些设置,您需要做的就是从wp-config.php文件中删除它们。

    直接在数据库中更改WordPress URL

    您可以用来更改WordPress URL的第三种方法是直接在WordPress数据库中。为此,您使用phpMyAdmin。这通常是作为最后的手段。

    注:如果操作不正确,直接从phpMyAdmin编辑和操作数据库表可能会破坏您的站点。确保在编辑数据库之前备份您的站点

    在phpMyAdmin中,单击左侧的数据库。然后向下滚动并单击“wp_options”表。如果您的数据库有不同的前缀,它的命名可能会略有不同,例如wp56_options。

    phpMyAdmin – wp_options表

    phpMyAdmin – wp_options表

    然后找到site urlhome字段。双击每个选项的option_value字段并输入新的URL。

    phpMyAdmin – 编辑URL

    phpMyAdmin – 编辑URL

    您的更改将自动保存。

    使用WP-CLI更改WordPress URL

    第四种选择是使用WordPress命令行界面 (WP-CLI) 访问您的站点并编辑URL。

    您需要通过SSH访问您的站点,并且您需要熟悉使用WP-CLI访问您的站点的过程。

    如果您不熟悉WP-CLI,可以查看我们关于从终端管理WordPress的深入文章。

    编辑URL的命令如下:

    wp option update home ‘http://yoursiteurl.com’
    wp option update siteurl ‘http://yoursiteurl.com’
    wp option update home ‘http://yoursiteurl.com’
    wp option update siteurl ‘http://yoursiteurl.com’
    wp option update home 'http://yoursiteurl.com'
    wp option update siteurl 'http://yoursiteurl.com'

    更改WordPress登录URL

    有时您可能想要更改WordPress登录的URL,而不是实时站点的URL。

    您的登录URL通常是您的域名,后跟/wp-admin或/wp-login。但是可以将其更改为更简单的内容,以便为您的用户和客户提供更好的用户体验,或者为您的网站管理员打上烙印并删除对WordPress的明显引用。

    您可以手动或通过安装插件来更改WordPress登录URL 。

    更改WordPress网址后的重定向

    更改WordPress URL后,您需要确保使用旧URL的任何人都被重定向到新URL,并且不会出现错误。

    如果您使用宝塔,则可以使用宝塔面板设置重定向。按照重定向最佳实践指南以避免重定向错误,如“重定向过多”,并了解如何设置它,以免影响您网站的性能。

    在宝塔面板中创建重定向

    在宝塔面板中创建重定向

    您可能还需要为单个文章或页面添加重定向,尽管通配符重定向更有可能。

    如果您没有使用宝塔,请查看您的托管服务提供商是否允许您在控制面板中设置通配符重定向。

    或者,您可以使用Redirection之类的插件来设置从旧域名到新域名的通配符重定向。

    如果您在您的网站上运行Yoast高级版并且您需要编辑单个文章或页面的URL,该插件将自动为您设置重定向,因此您无需手动执行此操作。如果您知道自己在做什么,它还允许您设置在更改站点URL时可以使用的正则表达式重定向。我们的重定向深度指南解释了正则表达式重定向的工作原理。

    小结

    如果您需要更改您的WordPress URL,因为您已经切换了域或您正在转移到HTTPS,您可以使用多种方法来执行此操作。

    您可以更改WordPress管理后台中的设置,将它们硬编码到wp-config.php文件中,编辑数据库或使用WP-C

  • 什么是307临时重定向及何时需使用

    错误类型:
    HTTP错误
    错误名称:
    HTTP 307临时重定向
    英文名称:
    307 Temporary Redirect
    错误描述:
    这原则上并不是一个错误。307(临时重定向)状态码表示目标资源临时驻留在不同的 URI 下,如果用户代理执行自动重定向到该 URI,则用户代理不得更改请求方法。由于重定向会随着时间的推移而改变,客户端应该继续使用原始的有效请求 URI 来处理未来的请求。

    什么是307临时重定向及何时需使用

    HTTP协议定义了40多个服务器状态代码,其中9个明确用于URL重定向。每个重定向状态代码都以数字 3 (HTTP 3xx) 开头,并且有自己的处理重定向的方法。虽然它们中的一些是相似的,但它们都以不同的方式处理重定向。

    作为站长,了解您可能遇到的各种超文本传输​​协议 (HTTP) 状态代码非常重要。像“307重定向”这样的其他错误对于确保访问者可以成功访问您的URL(并且您不会受到搜索引擎的惩罚)至关重要。但是,这并不是唯一可用的重定向类型,因此您可能想知道何时适合使用它。

    在这篇文章中,我们将深入介绍HTTP 307临时重定向307内部重定向状态代码,包括它们的重要性以及它们与其他 3xx 重定向状态代码的区别。

    1. 什么是HTTP 307临时重定向?
    2. HTTP 3xx重定向的工作原理
    3. 各种HTTP 3xx重定向
    4. 使用302 vs 303 vs 307进行临时重定向
    5. 了解仅HTTPS站点的HTTP 307内部重定向
    6. HTTP 307重定向和SEO

    什么是HTTP 307临时重定向?

    互联网工程任务组 (IETF) 将307临时重定向定义为:

    307(临时重定向)状态码表示目标资源临时驻留在不同的 URI 下,如果用户代理执行自动重定向到该 URI,则用户代理不得更改请求方法。由于重定向会随着时间的推移而改变,客户端应该继续使用原始的有效请求 URI 来处理未来的请求。

    有数十种HTTP状态代码,分为五个主要类别。例如,遵循“4XX”结构的代码,例如404,是客户端错误。

    HTTP“3XX”是重定向类别。有九种不同类型的重定向。例如,301状态代码用于指示网页何时永久移动。

    重定向状态代码对于搜索引擎优化 (SEO)至关重要。将用户搜索引擎机器人正确路由到适当的 URL 很重要,尤其是当他们移动时。

    307是一种临时重定向。此HTTP响应状态代码意味着某人请求的URL已暂时移动到不同的URI(用户资源标识符),但最终将返回其原始位置。此外,它还告诉搜索引擎您的服务器与HTTP 1.1兼容。

    无需太技术化,307重定向是302重定向的较新版本(或后续版本)。后者可用于临时将用户重新路由到新URL,这在您重新设计网站时会派上用场。

    另一方面,307重定向表示用户请求的 URL 已移动到临时位置,但会返回。302和307之间的主要区别在于请求方法不会随着307状态代码而改变:

    307响应标头

    例如,请求不能从GET更改为POST。它必须是GET和GET,或者POST和POST。简而言之,这些请求-响应方法是浏览器和服务器通信的方式。您可以在W3Schools上详细了解各种HTTP请求方法之间的区别

    HTTP 3xx重定向的工作原理

    在我们深入研究HTTP 307临时重定向和307内部重定向响应之前,让我们了解HTTP重定向的工作原理。

    HTTP状态代码是从服务器到浏览器的响应。每个状态代码都是一个三位数字,第一个数字定义了它是什么类型的响应。HTTP 3xx状态代码意味着重定向。它们命令浏览器重定向到一个新的 URL,该 URL在服务器响应的Location标头中定义。

    HTTP 3xx重定向

    HTTP 3xx重定向

    当您的浏览器遇到来自服务器的重定向请求时,它需要了解此请求的性质。各种HTTP 3xx重定向状态代码处理这些请求。了解所有这些将有助于我们更好地理解 307 临时重定向和 307 内部重定向。

    我们谈的时候,你应该使用307重定向之前,它可能有助于了解如何它的工作原理。首先,您的浏览器向您尝试访问的站点的Web服务器发送初始请求。

    使用Location标头,服务器然后以HTTP 3XX状态代码(在本例中为307)进行响应。然后浏览器将请求发送到新的URL位置,服务器再次响应(这次通过发送显示网页所需的数据)。

    请注意,有两种类型的307重定向:临时和内部。307内部重定向是307临时的变体,发生在浏览器级别。因此,它不会影响您网站的SEO。

    各种HTTP 3xx重定向

    有几种类型的HTTP 3xx重定向状态代码。最初的HTTP规范不包括307临时重定向和308永久重定向,因为这些角色是由301永久迁移和302发现来填补的。

    然而,大多数客户端将HTTP请求方法从POST更改为GET以获取301和302重定向响应,尽管HTTP规范不允许客户端这样做。这种行为需要在HTTP/1.1更新中引入更严格的307 临时重定向308 永久重定向状态代码。

    HTTP 307 内部重定向响应是307 临时重定向状态代码的变体。它不是由HTTP标准定义的,只是一个本地浏览器实现。我们稍后会更详细地讨论它。

    虽然默认情况下会缓存诸如301和308之类的重定向状态代码,但其他诸如302和307之类的则不会。但是,您可以通过添加Cache-ControlExpires响应头字段使所有重定向响应可缓存(或不可缓存)。

    HTTP重定向并不复杂

    HTTP重定向并不复杂

    使用302 vs 303 vs 307进行临时重定向

    如上图所示,对于临时重定向,您有三个选项:302、303或307。但是,大多数客户端将302状态代码视为303响应并将HTTP请求方法更改为GET。从安全的角度来看,这并不理想。

    “ RFC 1945 和 RFC 2068 指定不允许客户端更改重定向请求的方法。然而,大多数现有的用户代理实现将 302 视为 303 响应,无论原始请求方法如何,对 Location 字段值执行 GET。状态代码 303 和 307 已添加用于希望明确明确客户端期望哪种反应的服务器。”–  HTTP/1.1。状态代码定义,W3.org

    因此,对于需要维护HTTP请求方法的临时重定向,请使用更严格的HTTP 307临时重定向响应。

    例如将/register-form.html重定向到signup-form.html,或从/login.php重定向到/signin.php。

    对于需要将重定向请求方法更改为GET的情况,请改用303 See Other响应。

    例如,从 /register.php页面重定向POST请求以通过GET请求加载/success.html页面。

    除非您的目标受众使用旧客户端,否则请避免使用302 Found重定向响应。

    了解仅HTTPS站点的HTTP 307内部重定向

    如果您有一个仅支持HTTPS的站点,当您尝试通过常规http://不安全地访问它时,您的浏览器将自动重定向到其安全的https://版本。通常,这发生在来自服务器的301永久迁移重定向响应中。

    例如,如果您访问http://citibank.com并在Chrome中加载DevTools并选择网络选项卡,您可以看到浏览器和服务器之间发出的所有请求。

    第一个响应是301 Moved Permanently,它将浏览器重定向到站点的HTTPS版本。

    301响应重定向到HTTPS版本

    301响应重定向到HTTPS版本

    如果我们深入研究第一个请求的Headers字段,我们可以看到Location响应标头定义了重定向的安全URL是什么。

    位置响应头定义了重定向URL

    位置响应头定义了重定向URL

    这种方法的问题在于恶意行为者可以劫持网络连接以将浏览器重定向到自定义URL。像这样的中间人 (MITM) 攻击非常普遍。一部受欢迎的电视剧甚至在其中一集中对其进行了恶搞。

    此外,恶意方可以在不更改浏览器地址栏中显示的URL的情况下发起MITM攻击。例如,可以为用户提供看起来与原始站点完全相同的网络钓鱼页面。

    由于一切看起来都一样,包括地址栏中的URL,大多数用户会很乐意输入他们的凭据。你可以想象为什么这会很糟糕。

    301重定向到HTTPS不安全

    301重定向到HTTPS不安全

    使用HTTP 307内部重定向安全重定向

    现在,让我们用闪电博尝试相同的示例。访问http://www.wbolt.com会导致网络请求,如下面的屏幕截图所示。

    307内部重定向示例

    307内部重定向示例

    站点的第一个请求与前面的示例类似,但这次会导致307 内部重定向响应。单击它会向我们显示有关此响应的更多详细信息。

    注意:如果您尝试直接使用https://访问该站点,您将不会看到此标头,因为浏览器不需要执行任何重定向。

    307内部重定向响应的响应头

    307内部重定向响应的响应头

    注意 Non-Authoritative-Reason: HSTS响应头。这是HTTP 的严格传输安全 (HSTS),也称为Strict-Transport-Security响应标头。

    什么是 HSTS(严格传输安全)?

    IETF于2012年批准了HTTP严格传输安全(HSTS),以强制浏览器在站点严格运行HTTPS时使用安全连接。

    这类似于Chrome或Firefox说:“我甚至不会尝试通过不安全的HTTP协议请求此站点或其任何资源。相反,我会将其更改为HTTPS,然后再试一次。”

    通过307内部重定向响应提高安全性

    通过307内部重定向响应提高安全性

    深入研究第二个请求的响应头会让我们更好地理解。

    验证HSTS响应头

    验证HSTS响应头

    在这里,您可以看到 strict-transport-security: max age=31536000响应头。

    strict-transport-security响应头的max-age属性定义了浏览器应该遵循这种模式的时长。在上面的示例中,此值设置为3153600秒(或 1 年)。

    一旦站点返回此响应标头,浏览器甚至不会尝试发出普通的HTTP请求。相反,它将执行307 内部重定向到HTTPS并重试。

    每次重复此过程时,都会重置响应标头。因此,浏览器将无法无限期地发出不安全的请求。

    什么是HSTS预加载列表?

    即使使用HSTS,也存在明显的安全问题。您使用浏览器发送的第一个HTTP请求是不安全的,因此重复了我们之前在花旗银行中观察到的问题。

    此外,HSTS响应头只能通过HTTPS发送,因此初始的不安全请求甚至无法返回。

    为了解决这个问题,HSTS在其响应头中支持预加载属性。这个想法是有一个网站列表,强制在浏览器中预加载HSTS,完全绕过这个安全问题。

    将您的站点添加到浏览器的HSTS预加载列表中,它会知道您的站点执行严格的HSTS策略,即使它是第一次访问您的站点。然后,浏览器将使用307 内部重定向响应将您的站点重定向到其安全的https://方案,然后再请求其他任何内容。

    您应该注意,与307 Temporary Redirect不同,307 Internal Redirect响应是浏览器本身设置的“假标头”。它不是来自服务器、网络主机或 CMS(例如 WordPress)。

    将站点添加到HSTS预加载列表有许多优点:

    1. Web服务器永远不会看到不安全的HTTP请求。这减少了服务器负载并使站点更加安全。
    2. 浏览器负责从HTTP到HTTPS的重定向,使网站更快、更安全。

    HSTS预加载列表要求

    如果要将站点添加到浏览器的HSTS预加载列表中,则需要勾选以下条件:

    • 为您的域安装了有效的SSL/TLS证书。
    • 通过将所有HTTP流量重定向到HTTPS来强制执行严格的HTTPS。
    • 所有子域都应通过HTTPS提供服务,特别是www子域(如果该子域的DNS记录存在)。
    • 您的基本域应包含具有以下属性的 HSTS 标头:
      • 最大周期属性必须至少31536000秒(1年)来设置。
      • includeSubdomains预载指令必须指定。
      • 如果您提供额外的重定向服务,它必须包含HSTS标头,而不是它重定向到的页面。

    从HSTS预加载列表中删除您的域可能既困难又耗时(最多 12 周或更长时间)。当且仅当您完全致力于在您的站点上使用HTTPS时启用 HSTS。您可以通过在hstspreload.org上提交表单将您的站点从HSTS预加载列表中删除。

    将您的站点添加到HSTS预加载列表

    HSTS预加载列表提交

    HSTS预加载列表提交

    有两种方法可以将您的站点添加到HSTS预加载列表中。

    1. 通过将您的站点提交到HSTS预加载列表目录。例如,hstspreload.org主列表由Chromium开源项目维护,并被大多数主要浏览器(Firefox、Chrome、Safari、IE 11 和 Edge)使用。
    2. 通过将以下标题字段添加到您的站点:

    严格传输安全:max-age=63072000;包括子域;预载

    使用第二种方法,浏览器第一次访问您的网站将不会完全安全。但是,后续访问将是完全安全的。

    Mozilla的HSTS预加载列表示例

    Mozilla的HSTS预加载列表示例

    您可以使用安全标头等免费在线工具来验证您的站点是否正在执行HSTS。如果您担心浏览器对HSTS的支持,您可以放心,因为当今使用的几乎所有浏览器都支持 HSTS

    HSTS得到所有主流浏览器的广泛支持

    HSTS得到所有主流浏览器的广泛支持

    HTTP 307 重定向和SEO

    由于307 Temporary Redirect响应显示资源已临时移至新 URL,因此搜索引擎不会更新其索引以包含此新 URL。来自原始 URL 的“link-juice”不会传递到新 URL。

    这与 301 Moved Permanently 重定向形成对比,其中搜索引擎更新其索引以包含新 URL,并将“link-juice”从原始 URL 传递到新 URL。

    使用307 内部重定向响应,一切都发生在浏览器级别。因此,它应该不会对您网站的 SEO 产生直接影响。但是,将您的站点添加到 HSTS 预加载列表可以使其加载更快且更安全,这两者都可以帮助它在搜索结果中排名更高

    注意不要无意中将用户和机器人重定向到无限重定向循环中,从而导致“重定向过多”错误。

    何时使用307重定向

    重定向可能是您网站维护的一个有用部分。但是,重要的是要小心使用它们的时间和方式,以及使用哪些。过多的URL重定向会减慢您的加载时间,并损害您的用户体验 (UX) 和SEO。

    因此,最佳做法是谨慎使用它们。话虽如此,使用307重定向时有一些场景是合适的。这包括当您:

    • 更新页面上的内容
    • 迁移到不同的内容管理系统 (CMS)
    • 切换域名
    • 由于维护而暂时关闭您的网站

    关键是仅在您知道移动是暂时的才使用307重定向。否则,您最好使用301或308重定向,这样您的SEO中的链接权重就会从旧URL传递到新URL。

    当您打算永久删除或移动页面,或者您正在更改页面的永久链接结构时,通常最好使用301重定向。同样,当您仍然希望它们指向的页面出现在搜索引擎结果中时,最好使用 301 重定向。如果您想在您创建的新页面上从访问者那里获得反馈,同时又不妨碍您的SEO,这也会很有帮助。

    如何在网站上实施307临时重定向

    除了了解各种类型的重定向之外,了解如何正确实现和使用它们也很重要。以下是在您的网站上使用 307 重定向的一些关键提示。

    通过.htaccess文件实现临时重定向

    有几种不同的方法来实现重定向。在WordPress网站上,最好的方法通常是在您的.htaccess文件中指定307重定向,该文件是您的主要服务器配置文件。

    请注意,由于这是一个如此重要的文件,因此谨慎对待对其所做的任何更改至关重要。我们还建议在修改此文件之前创建站点的备份,尤其是在您没有太多开发经验的情况下。

    然后您可以通过文件传输协议 (FTP) 客户端或您的主机帐户的文件管理器应用程序访问它。通常,您可以在站点根目录的public_html文件夹中找到它:

    file-manager-htaccess

    .htaccess文件中,您可以使用mod_rewrite模块实现重定向。这看起来像这样:

    # 使用临时重定向将服务页面重定向到新页面
    RewriteRule “^/service$” “/about/service” [R]
    # 使用临时重定向将服务页面重定向到新页面
    RewriteRule “^/service$” “/about/service” [R]
    # 使用临时重定向将服务页面重定向到新页面 
    RewriteRule “^/service$” “/about/service” [R]

    如需更多信息和指导,您可能需要参考Google的搜索中心关于创建重定向的指南

    使用插件实现链接重定向

    除了自己手动配置重定向,另一种选择是使用WordPress重定向解决方案,例如Quick Page/Post Redirect Plugin

    quick-pagepost-redirect

    这个免费工具可让您将301、302和307重定向添加到您的WordPress 网站。但是,重要的是要注意它使用所谓的“元刷新”重定向。

    元刷新重定向发生在浏览器中,而不是您的Web服务器中。这意味着重定向会告诉浏览器在特定时间跨度内导航到指定的URL。当您看到一个网页内容如下:“如果您没有在5秒内重定向,请单击此处”时,就会发生这种情况。

    这些类型的重定向不仅会使您的访问者感到困惑,而且如果使用频率过高,它们还会使搜索引擎抓取工具认为您的网站包含垃圾邮件内容。因此,我们只建议在您无法通过.htaccess文件设置重定向时使用此方法(例如,如果您的 Web 主机不提供对它的访问)。

    小结

    深入了解HTTP响应状态代码是成为成功网站所有者的重要组成部分。设置重定向可以帮助您正确执行站点维护。如果您只想临时移动URL,我们建议您使用307重定向。

    正如我们在这篇文章中所讨论的,307重定向是一种状态代码,您可以使用它来将访问者指向一个新的 URL,但最终在您完成更改或更新后将他们带回原始 URL。当您不希望链接权重从旧URL传递到新URL时,最好使用此选项。

    此外,或者你应该阅读更多关于链接重定向的相关文章,以加深这一块的了解:

  • 如何修复WordPress网站Err Too Many Redirects问题

    错误类型:
    浏览器错误
    错误名称:
    过多重定向错误
    英文名称:
    Err Too Many Redirects
    错误描述:
    WordPress网站出现“Error too many redirects”报错则是由WordPress中配置错误的重定向问题引起的。
    错误变体:
    The page isn’t redirecting properly
    更多信息

    您是否曾经遭遇打开WordPress网站时提示“Err Too Many Redirects”错误?这是一个常见的WordPress错误,可能是由插件或错误的设置引起的。这个错误将导致访客无法访问WordPress网站,尤其麻烦。

    在本教程中,我们将详细解决WordPress中的太多重定向错误问题的具体办法。

    Error Too Many Redirects问题

    是什么原因导致WordPress中出现过多重定向错误?

    关于“err_too_many_redirects”,您需要了解的第一件事是它实际上并不是特定于WordPress的问题。相反,这是当您的浏览器由于重定向循环而无法向您显示您请求的内容时显示的消息。

    重定向就像转发地址。您可以设置一个,以便如果访问者点击链接或输入特定页面的 URL,他们将被发送到不同的目的地。通常,当您将网站上的内容移动到新页面或将其完全删除时,会使用此技术。

    如果您更改了网站的永久链接结构,重定向也很方便。它们可以防止损坏的链接,并确保您的访问者在尝试访问与以前不同的内容时看到的不是404页面。

    因此,当“err_too_many_redirects”发生时,这意味着您尝试访问的页面被重定向循环捕获,指向另一个也指向自身的页面。换句话说,页面A正在重定向到页面B,而页面B重定向回页面A。这对于您的浏览器来说是可以理解的混淆,这是可以理解的。

    WordPress网站出现“Error too many redirects”报错则是由WordPress中配置错误的重定向问题引起的。

    如您所知,WordPress使用了SEO友好的URL结构功能,该功能使用了重定向功能。

    同样,许多流行的WordPress插件都使用此功能来设置临时重定向,永久301重定向以及修复404错误

    如果您使用解决SSL不安全的内容问题插件或WordPress缓存插件,那么它们也可能会影响重定向并导致此错误。

    Error Too Many Redirects错误提示

    但是,此错误不会告诉您是什么原因导致了冲突并迫使WordPress出现重定向循环。

    这是在Firefox中错误提示界面,并显示消息“The page isn’t redirecting properly”。

    Firefox浏览器Error Too Many Redirects错误提示

    下面让我们看一下如何解决WordPress中过多重定向问题的错误。

    我们将引导您逐步解决问题,访问WordPress网站,并修复再次发生的错误。

    如何对WordPress网站“err_too_many_redirects”错误进行故障排除

    1.清除浏览器Cookie和缓存

    导致此错误的常见原因可能是您的Web浏览器Cookie。尝试使用其他网络浏览器(例如Firefox,Safari,Opera,Microsoft Edge等)访问您的网站。

    如果您能够使用其他浏览器正常访问网站,则需要清除浏览器Cookie和浏览器缓存。

    chrome浏览器cookies和缓存清理

    你可以根据浏览器Cookies清理浏览器缓存清理指引,来完成上述操作。

    如果更改浏览器未能解决问题,则可以继续执行下一步。

    2.停用所有WordPress插件

    WordPress重定向循环或“太多重定向”问题的最常见原因是插件冲突。试图以与默认WordPress重定向冲突方式设置重定向的插件也会导致这个错误。

    要解决此问题,您需要停用网站上的所有WordPress插件。进入WordPress管理后台的插件»已安装插件页面,然后从那里停用插件。

    停用所有插件

    但是,我们假设由于重定向错误,您可能无法访问WordPress管理后台。

    在这种情况下,您将需要使用FTP客户端或WordPress托管服务器控制面板中的File Manager应用程序停用WordPress插件。

    只需使用FTP客户端连接到您的网站,然后转到/wp-content/文件夹。

    重命名插件文件夹

    在这里,您会找到plugins文件夹,需要将其重命名为“plugins.deactivate”,这将停用WordPress插件。

    重命名文件夹停用插件

    基本上,WordPress会寻找一个名为plugins的文件夹来加载插件文件。当找不到文件夹时,它将自动禁用数据库中的启用插件。

    现在,您可以尝试访问WordPress网站。如果您现在能够登录到WordPress管理后台,则意味着其中一个插件引起了错误。

    要弄清楚哪个插件是罪魁祸首,您需要切换回FTP客户端或文件管理器应用程序,然后将plugins.deactivate文件夹重命名为“plugins”。

    之后,切换到您网站的WordPress管理后台,然后转到“插件»已安装插件”页面。您可以从这里逐个启用插件,然后访问网站以查看是否可以重现该错误。

    找到导致错误的插件后,找到该插件的替代品,或将问题报告给插件的支持论坛。

    3.修复WordPress URL

    导致此错误的另一个主要原因是WordPress URL设置中的配置错误。通常,您可以在“设置”»“常规”页面下查看这些选项。

    WordPress站点链接设置

    对于大多数网站,WordPress地址和站点地址字段中的URL必须相同。但是,某些用户最终可能会在一个URL中使用www,而在另一个URL中使用非www URL。

    由于您可能无权访问WordPress管理后台,因此您可能需要使用FTP客户端或文件管理器应用程序修复WordPress URL。

    只需使用FTP客户端连接到您的WordPress网站,然后转到/wp-content/themes/your-theme-folder/

    编辑主题function文件

    找到functions.php文件,并使用文本编辑器(如Notepad或TextEdit)对其进行编辑。

    需要在底部添加以下代码:

    update_option( ‘siteurl’, ‘https://example.com’ );
    update_option( ‘home’, ‘https://example.com’ );
    update_option( ‘siteurl’, ‘https://example.com’ );
    update_option( ‘home’, ‘https://example.com’ );
    update_option( 'siteurl', 'https://example.com' ); 
    update_option( 'home', 'https://example.com' );

    不要忘记将https://example.com替换为您网站的URL。保存更改并将文件上传覆盖源文件。

    之后,您可以尝试访问网站以查看是否可以解决该错误。

    4.确定导致“err_too_many_redirects”循环的原因

    有时你必须做一些真正的侦探工作来修复“err_too_many_redirects”。如果您能找到重定向循环的来源,您可以将其从您的网站中删除,以便让您的内容重新上线。

    如果您已将重定向添加到 .htaccess文件或使用诸如Redirection之类的插件,您可以简单地检查它们以查看是否有任何地址相互指向。如果您不确定如何执行此操作,或者您有很多重定向需要很长时间才能搜索,您可以考虑使用重定向检查器工具:

    重定向检查器工具

    只需输入遇到“err_too_many_redirects”错误的页面的完整URL,然后等待结果:

    重定向检查器工具检测

    在上面的示例中,您可以看到一长串301重定向在两个文章之间交替出现。有了这些信息,您应该能够从相关页面中删除重定向。

    另外也可能是由于.htaccess文件所配置的重定向规则导致过多重定向所致。

    .htaccess文件是一个特殊文件,网站服务器使用它来管理重定向和其他服务器设置。WordPress还将此文件用于SEO友好的URL和其他重定向。

    有时WordPress插件可能会更改您网站的.htaccess文件,这可能会触发此错误。删除的插件也可能不会从您的.htaccess文件中删除这些更改。

    在这种情况下,您需要手动重置WordPress .htaccess文件。

    同样,您将需要使用FTP客户端或托管服务器仪表盘中的文件管理器应用程序访问您的网站。建立连接后,您将在网站的根文件夹中看到.htaccess文件。

    重置htaccess

    注意:如果找不到.htaccess文件,请参阅有关如何在WordPress中查找.htaccess文件文章。

    首先,您需要将.htaccess文件的副本下载到计算机上作为备份。

    之后,从网站中删除文件。现在,您可以尝试访问WordPress博客,如果一切正常,则表明您的.htaccess文件引起了重定向错误。

    由于我们删除了.htaccess文件,因此您需要重新创建它。通常,WordPress网站可以自行执行此操作,但要确保您可以转到“设置”»“固定链接”页面,然后单击底部的“保存更改”按钮。

    WordPress固定链接设置

    5. 查看您的HTTPS设置

    获取安全套接字层 (SSL) 证书并将您的站点切换到HTTPS是保持站点安全的明智之举。但是,如果您处理不当,此更改可能会导致整个站点的重定向循环。

    出现此问题的原因有以下几种:

    • 您在安装SSL证书之前强制使用HTTPS。这将自动将您的网站放入重定向循环。
    • 您正在使用HTTPS插件。当您将第三方插件引入混合时,出错的机会更多。通常最好找到并替换您的URL以实现 HTTPS,而不是使用插件来设置重定向。
    • 您服务器上的重定向规则配置不正确。如果您怀疑这是问题所在,最好联系您的托管支持团队寻求帮助。

    确定您的HTTPS设置是否导致“err_too_many_redirects”错误的一种方法是使用重定向映射器工具检查您的站点:

    重定向映射器工具

    这类似于重定向检查器,但它只显示www到非www重定向以及HTTP到HTTPS重定向的结果:

    重定向映射器工具2

    如果您看到站点的HTTP和HTTPS版本之间列出了多个重定向 ,这可能是循环的来源。纠正它们可能会解决问题。

    6. 评估您的Cloudflare设置

    如果您是Cloudflare用户,则您遇到的问题可能与该平台有关。例如,您的Cloudflare设置中可能配置了HTTP到 HTTPS重定向循环。启用“flexible”SSL配置时可能会发生这种情况。

    此错误的另一个潜在Cloudflare相关来源是“页面规则”冲突。此功能的“转发URL”设置可能会造成无意的重定向循环。

    您可以检查这些设置以获取重定向循环的证据,并查阅Cloudflare的支持文档以获取解决它们的指导。如果您仍然遇到问题,请考虑转向社区论坛寻求进一步帮助。