- 错误类型:
- HTTP错误
- 错误名称:
- HTTP 429错误码
- 英文名称:
- HTTP 429 Error
- 错误描述:
- 在某些情况下,当您的服务器检测到用户代理尝试在短时间内过于频繁地访问特定页面时,它会触发速率限制功能。最常见的例子是用户(或攻击者)反复尝试登录您的站点。
- 错误变体:
-
“429 error”“HTTP 429”“Error 429 (Too Many Requests)”
您可以得到的“最佳”错误类型是那些准确地告诉您导致问题的原因的错误。HTTP 429 Error就是这样的错误,您会立即知道问题是什么,因此您可以立即开始确定罪魁祸首。
简而言之,当某人或某物向您的服务器发出过多请求时,就会出现429错误。如果您使用的是WordPress,有几种简单的方法可以解决此问题。
在本文中,我们将讨论导致 429 Too Many Requests错误的原因及其外观。然后,如果您遇到此特定问题,我们将介绍五种可以对您的网站进行故障排除的方法。
什么是429错误码?
HTTP 429 Error因其随附的消息而广为人知,该消息内容为:“请求过多”。根据您使用的浏览器,错误代码可能略有不同。它的一些最常见的变体包括:
- “429 error”
- “HTTP 429”
- “Error 429 (Too Many Requests)”
如您所见,“429”标识符始终存在。简而言之,此错误代码意味着两件事之一。要么您的Web服务器被它收到的请求数量所淹没,要么它有一个设置来阻止来自特定IP地址的连接,如果它检测到异常。
“异常”是指可疑行为,例如某个特定 IP 反复尝试访问您网站的登录页面。拒绝服务 (DDoS) 攻击也可能触发HTTP错误-429,因为安全服务器很容易识别这种恶意行为。
准确了解什么会触发错误429很重要。如果您是多次尝试访问某个页面的人,那么错误应该很快就会自行消失。例如,您的Web主机可能设置了在发生可疑行为后的几分钟内限制访问的设置。
另一方面,如果错误仍然存在,则可能表示恶意攻击或第三方服务使您的服务器不堪重负。在这种情况下,您可能需要卷起袖子自行修理。
什么导致HTTP 429请求过多错误
在某些情况下,当您的服务器检测到用户代理尝试在短时间内过于频繁地访问特定页面时,它会触发速率限制功能。最常见的例子是用户(或攻击者)反复尝试登录您的站点。
但是,您的服务器也可能使用 cookie 来识别用户,而不是通过他们的登录凭据。请求也可以基于每个请求、跨您的服务器或跨多个服务器进行计数。因此,有多种情况可能会导致您看到以下错误之一:
- 429 请求过多
- 429 错误
- HTTP 429
- 错误 429(请求过多)
该错误还可能包括有关 429 状态代码原因的其他详细信息,以及用户在尝试再次登录之前必须等待的时间。下面是一个示例:
Content-type: text/html
Retry-After: 3600
HTTP/1.1 429 Too Many Requests Content-type: text/html Retry-After: 3600
<head>
<title>Too Many Requests</title>
</head>
<body>
<h1>Too Many Requests</h1>
<p>I only allow 50 requests per hour to this website per logged in user. Try again soon. </p>
</body>
</html>
<html> <head> <title>Too Many Requests</title> </head> <body> <h1>Too Many Requests</h1> <p>I only allow 50 requests per hour to this website per logged in user. Try again soon. </p> </body> </html>
不管错误如何出现,它总是意味着同样的事情——有一个用户或一段代码用太多的请求使你的服务器不堪重负。有时,问题会自行消失。在其他情况下,例如由插件问题或拒绝服务 (DDoS) 攻击引起的情况,您需要主动解决错误。
问题是 429 错误最常影响您的登录页面,这可能使您无法访问网站的仪表板。这可能会使修复它有点棘手,但如果您知道要尝试什么,它仍然可以实现。
如何修复WordPress中的HTTP错误-429
在以下部分中,我们将探索修复HTTP 429 Error的四种最常见方法。我们将按照通常最有效的顺序处理这些修复,首先是对您的插件进行故障排除。
1. 更改WordPress登录 URL
暴力登录尝试是WordPress网站上429 错误的主要原因之一。防止攻击者试图突破您的WordPress登录页面的一种快速方法是更改其默认选项的URL,这样他们就无法首先找到它。
默认情况下,您可以通过导航到yourwebsite.com/wp-admin来找到您的登录页面。这很容易记住,但它也完全不安全,因为网络上的每个人都知道在哪里访问它。
更改默认WordPress URL的最简单方法是使用免费的WPS Hide Login插件:
让我们来看看使用这个特定工具的过程。您首先要像其他任何插件一样安装和激活插件,然后导航到WordPress仪表板中的设置>WPS Hide Login选项卡:
在这里,您可以通过输入您想使用的任何扩展程序轻松更改您的登录URL。确保远离易于猜测的选项,例如login、wp-login等。这首先会违背更改URL的目的,因此您需要为您的站点设计一些独特的内容。
请注意,此插件还可让您将尝试访问旧登录 URL 的用户重定向到另一个页面。例如,默认选项将向尝试访问/wp-admin的任何人显示404错误页面,因此他们会知道他们在错误的位置查找。完成后,请记住保存对设置的更改,这样您就可以开始使用了。
2. 禁用Really Simple SSL插件并替换您的内部链接
如今,您没有理由不为您的网站设置安全套接字层 (SSL) 证书。同样,您的整个网站应该通过HTTPS加载。这比使用旧的HTTP协议安全得多,它甚至可以对您网站的搜索引擎优化 (SEO)产生积极影响。
在强制使用 HTTPS 时,您可以使用手动路由(例如.htaccess重定向)或插件。最受欢迎的选择之一是Really Simple SSL:
这个插件的吸引力在于它只需点击几下就可以强制您的整个网站通过HTTPS加载。但是,根据我们的经验,它也可能导致偶尔出现错误。例如,在某些情况下,它会触发我们一直在谈论的429错误。
这个插件本身没有什么问题,但它绝对不是实现HTTPS使用的最佳方式。问题是,即使您手动实施HTTPS,您仍然面临如何处理内部链接的问题。您的网站上可能有很多内部链接,因此您需要找到一种方法,在禁用插件后将它们全部替换为HTTPS版本。
首先,您需要处理插件本身。如果您有权访问WordPress管理后台,禁用Really Simple SSL应该不是问题 – 只需点击停用即可:
但是,由于429 Too Many Requests错误通常会阻止您访问仪表盘,因此您可能必须采用手动方式并使用FTP客户端禁用插件。
无论哪种方式,一旦Really Simple SSL插件消失,429错误就应该得到解决。这意味着您可以访问仪表盘以设置新插件,这将帮助您一次性替换所有内部链接。该插件称为Search and Replace:
继续并激活插件,然后导航到WordPress中的工具 > Search & Replace选项卡。在里面,选择wp_postmeta表,然后分别在Search for和Replace with字段旁边输入以下参数:
如果您的站点使用非www域:
http://yourwebsiteurl.comhttps://yourwebsiteurl.com
在某些情况下,数据库中也可能有您的域的www实例,因此我们还建议运行另一次搜索并替换为以下设置。
http://www.yourwebsiteurl.comhttps://yourwebsiteurl.com
如果您的站点使用www域:
http://www.yourwebsiteurl.comhttps://www.yourwebsiteurl.com
要替换数据库中域的非www实例,请运行另一个搜索并替换为以下设置:
http://www.yourwebsiteurl.comhttps://yourwebsiteurl.com
然后选择试运行选项,这会让您知道插件将在您的数据库中替换多少个HTTP URL实例。在那次试运行之后,真正执行插件,它将替换所有必要的链接。
请记住,禁用Really Simple SSL插件后,您还需要使用.htaccess文件设置站点范围的HTTPS重定向。这将使您能够有效地实施HTTPS,而不会出现进一步429错误的风险。
3. 禁用所有插件
到目前为止,我们专注于可能导致 429 错误的单个插件。但是,实际上,任何插件如果发出过多的外部请求,都可能导致此问题。如果上述方法都无法解决您的情况,可能是时候尝试一次禁用所有插件,以确保它们不是问题。
通常,流氓插件可能会导致持续的 429 错误。根据我们的经验,最有可能触发此类错误的插件是:
- 安全插件
- 强制您的网站通过HTTPS加载的解决方案
- 以一种或另一种方式重写WordPress URL的工具
确定插件是否触发HTTP错误 429的最快方法是禁用您站点上所有活动的插件。如果之后错误仍然存在,那么您可以尝试不同的修复程序,如果它消失了,您可以开始缩小罪魁祸首的范围。
禁用WordPress插件很简单。但是,错误429有时会阻止您访问WordPress管理后台。如果您遇到这种情况,暂时关闭插件的最佳方法是使用文件传输协议 (FTP)。
通过FTP连接到您的网站后,导航到wp-content 文件夹。在那里你会看到一个名为plugins的文件夹。如果您将该文件夹重命名为其他任何名称,它将一举禁用您网站上的每个插件:
当然,这样做会影响您网站的功能。但是,您的主要目标应该是重新获得访问权限,并查看插件是否触发了错误。
如果下次访问您的网站时 429 错误消失了,您可以假设您关闭的插件之一是罪魁祸首。这意味着您需要缩小导致问题的原因。为此,您需要:
- 删除你一分钟前设置的空插件目录,并将之前的文件夹恢复到原来的名称。
- 访问插件目录。
- 将其中的一个插件文件夹重命名为其他任何内容,这将仅停用该特定插件。
- 尝试访问您的网站,看看 429 错误是否消失。
- 如果错误仍然存在,请将该插件文件夹恢复为其原始名称,然后对下一个重复步骤 3 和 4。
通过一项一项地向下移动您的活动插件列表,您最终应该会发现哪个是罪魁祸首。一旦确定了 429 Too Many Requests 错误背后的插件,您可以将其完全删除,这应该可以解决问题。
4. 切换到默认的WordPress主题
在某些情况下,您的活动WordPress主题可能会出现错误429。这很可能是使用API密钥进行身份验证的复杂主题。
再一次,我们假设您无权访问您的WordPress仪表盘来处理这个潜在问题。然而,就像使用插件一样,您可以使用FTP客户端来禁用您的活动主题。
该过程与我们在上一节中介绍的步骤大致相同:
- 通过FTP连接到您的WordPress网站。
- 导航到wp-content/themes。
- 找到您的活动主题文件夹。
- 将该文件夹重命名为其他任何名称。
由于WordPress要求您的网站具有活动主题,因此它会自动切换到默认选项之一。如果您现在打开您的网站并且错误消失了,那么一切看起来都应该略有不同。
在此阶段,您可以尝试重新安装主题或恢复其现有文件夹的先前名称。如果错误仍然存在,那么您可能需要恢复到主题的先前版本或考虑使用不同的.
5. 联系服务器提供商
任何优质的服务器支持服务都会感谢您在联系他们之前尝试解决问题。当谈到HTTP错误429时,如果您排除了插件和主题,那么您可以假设问题很可能是第三方对您网站的攻击。
这里有很多的,你可以用它来的措施保护你的WordPress网站。然而,其中大多数是先发制人的措施。如果您的网站目前“受到攻击”,那么您可能需要请求技术帮助。
即使您无法访问您的网站,您的网络托管服务商的支持服务也应该能够查看其安全日志,看看是否有问题。他们可能还能够恢复您无权访问的早期备份。
所以在这一点上,我们的建议是让您的托管服务提供商知道您正在查看什么错误,以及您尝试解决的问题。一旦错误429消失,您就可以采取措施保护您的网站,以免再次出现此问题。
小结
就错误而言,429错误并不难处理。在最坏的情况下,它可能会阻止您登录WordPress管理后台,但您仍然可以采取一些简单的步骤来尝试解决该问题。
如果您遇到HTTP错误-429 并且它持续超过几分钟,这里有四个快速修复可以帮助您将网站恢复正常:
- 更改您的默认WordPress登录URL。
- 禁用真正简单的SSL 插件。
- 暂时停用所有WordPress插件。
- 切换到默认的WordPress主题。
- 如果您仍然无法解决错误,请联系您的主机。
注意,你的WordPress网站遭遇HTTP 429 Error,与你的网站连接WordPress网站返回的429 Too Many Requests完全是两码事。如果是您的网站在连接WordPress网站更新WordPress,又或者更新主题或插件时,WordPress告知你429 Too Many Requests,则需要采取另外的解决方案:WordPress报错“429 Too Many Requests”完美解决办法。