如何修复 HTTP 406 不可接受的错误? 客户端和服务器端修复

已发表: 2024-01-26

目录
什么是 HTTP 406 错误?
如何修复 406 错误?
客户端解决方案
服务器端解决方案
如何防止406错误?
结论
经常问的问题

什么是 HTTP 406 错误?

406错误代码是客户端错误,表示服务器不接受客户端的请求。 当服务器无法生成与请求标头中指定的可接受值列表匹配的响应时,它会触发。

因此,这个特定的 406 不可接受的错误也与 5xx 服务器错误(例如 504 网关超时)形成对比。

这是最不常见的 HTTP 错误之一,您在上网时几乎不会遇到,但如果您很不幸并且不得不在您的网站上看到此错误,则通常如下所示:

406 Not Acceptable Error
406 不可接受的错误

在上图中,您可以看到错误 406 已得到确认,并附加一条错误消息,指出“在此服务器上找不到所请求资源的适当表示。” 此错误是由 Mod_Security 生成的。

这对于人类尤其是那些非技术人员来说并没有太大帮助,甚至听起来相当神秘和机械化。 因此,让我们让您更容易理解此错误消息到底想表达什么。

客户端(即浏览器或设备)试图表示他们尝试显示网页,但可能发生了一些问题,例如:

1. 服务器发送了错误的文件,浏览器不支持。

2. 服务器无法产生有效的安全要求或可能不遵循协议。

了解 HTTP 错误 406

让我们从非常简单的语言开始,这个错误 506 只是表明服务器无法以客户端(即 Web 浏览器)请求的格式发送适当的数据。

客户端(即您的网络浏览器)具有可以使用“Accept”标头接受的特定标准或格式。 但如果服务器无法满足这些标准,它将以 HTTP 状态代码错误 406 进行响应。

现在最具挑战性的部分来了,找出这个错误的确切原因可能会非常成问题,因为这个问题可能发生在服务器和客户端通信链的任何地方。
但无论原因是什么,您都可以尝试使用以下一些方法来修复此 HTTP 406 错误。


如何修复 406 错误?

您可以遵循以下一些故障排除方法来修复错误 406。

客户端解决方案

1. 检查输入的URL是否正确

这听起来很明显而且非常基本,但相信我们,这是您可以尝试修复错误 406 的最简单但最快的方法。

尽管实际上,406 错误可能比看起来的要严重,但此时如果您输入了错误的 URL 并且该 URL 无效,您可能会遇到错误消息“406 不可接受”。

要解决此问题,您只需重新检查输入的 URL 并验证所有内容是否正确即可。 例如,

  • 检查是否有拼写错误
  • 检查是否输入了无效的特殊字符
  • 尝试输入其他页面的 URL,检查是否仅该页面发生这种情况。

如果错误仍然存​​在,请查看我们的其他解决方案。

2. 重置并配置您的网络和设备

由于错误406是客户端问题,某些在线游戏或媒体流服务等平台,例如Netflix和音乐流媒体平台Spotify,也可能无法满足客户端的请求,导致显示此错误。

此时,您可能认为这是服务器端的问题,但问题更有可能发生在客户端。 它可以是您的个人计算机、互联网连接或用于启动这些平台的任何设备。

由于这主要是由于服务器不兼容或不支持标头,因此您可能会在任何平台上出现此错误,无论是 Netflix、Amazon Prime、Hulu 等。

此外,我们无法解释在每个平台上解决 406 错误的每个步骤。 但是,您可以按照每个平台的这些基本步骤操作,看看错误是否已修复。

  • 通过关闭或拔掉电源重新启动网络设备,例如路由器 > 等待一段时间(约 2 分钟) > 重新插上电源并打开设备。
  • 同样,您也可以重新启动游戏系统、个人电脑、OTT 设备等。
  • 尝试将您的流媒体设备连接到其他网络,例如 WLAN 或移动网络,并检查错误是否仍然存在。
  • 检查流媒体应用程序的当前版本并更新(如果可用)。
  • 如果上述方法都不起作用,您能做的最好的事情就是搜索每个流媒体平台上的在线论坛和指南。

3. 回滚最近的 WordPress 更新

注意:在尝试更改网站上的任何内容之前,您需要做的第一件事是完整备份您的网站,作为预防措施。 这样,如果出现任何问题,您仍然可以毫发无伤地返回您的网站。

如果您最近在 406 错误代码出现之前更新了 WordPress,请考虑立即回滚到之前的版本。

作为参考,您可以查看这篇专门的文章“如何重新安装 WordPress? 4 种最佳遵循方法”。

同样,您最近升级的任何扩展或模块也可能会导致服务器端问题,因此恢复到这些扩展或模块的早期版本也可能有所帮助。

4.卸载最近添加的扩展、插件或主题

如果您最近添加了任何扩展、插件或主题,无论您使用什么内容管理系统,然后都会看到错误 406。 最好检查一下问题是否是他们造成的。

这是因为这些插件或主题可以访问您的数据库并可以对其进行更改,例如向您的站点文件添加额外的代码或更改数据库记录。 这些操作可能会导致出现 HTTP 错误 406。

找出有问题的插件或主题的最佳方法是将它们一一停用,然后查看 406 错误是否仍然出现。 如果错误消失,则停用的插件或主题更有可能是罪魁祸首。

Deactivate Plugin
停用插件

5. 查找任何数据库记录更改

如上一节所述,某些插件和主题可以修改或更改您的数据库记录。 因此,即使从 WordPress 仪表板中删除或卸载它们后,数据库中仍可能存在一些痕迹。

这些跟踪仍然可能导致触发错误 406。

您可以做的最好的事情是使用 Adminer 或 phpMyAdmin 打开数据库并检查表。

检查可能被插件或主题修改的 WordPress 表和记录。

Checking WordPress Database
检查数据库

信息 如果您的网站托管在 WPOven 服务器上,您可以通过数据库管理器工具轻松访问您的数据库。


服务器端解决方案

如果您没有使用 WordPress 等任何 CMS,或者在尝试所有上述方法后仍然遇到 HTTP 错误 406。以下是您可以在服务器端遵循的其他一些故障排除方法。

6.检查服务器日志

检查服务器端是否出现问题的最佳技巧之一是检查服务器日志。 无论您使用什么 CMS、网站平台或 Web 应用程序,它们都具有可用的服务器端日志。

这些服务器日志包含有关用于运行 Web 应用程序的服务器或硬件的运行状况和状态的重要信息。


阅读:对于 WordPress 网站,如何设置和使用 WordPress 错误日志?
对于 WPOven 用户,请阅读:如何查看我的访问和错误日​​志?


7.检查Web服务器配置

如果您无法解决“ 406 Not Acceptable ”错误,下一步是检查您的 Web 服务器配置文件。 此错误通常表示 Web 服务器限制用户访问特定 URL。

因此,有必要检查或检查您的 Web 服务器配置是否有任何请求处理指令或无意的重定向。

要检查您的网络服务器配置,第一步是确定您的网站使用哪种服务器软件。 它可以是 NGINX 或 Apache。

如果您的网站使用 Apache,请在网站系统文件的根目录中查找 .htaccess 文件。 但是,如果您的网站使用 NGINX Web 服务器,则必须查找 NGINX.conf 文件。

您还可以查看我们的专门文章“WordPress .htaccess 文件:如何创建和编辑它?”

找到 .htaccess 文件后,在文本编辑器中将其打开并搜索使用 406 标志的指令。

例如,这里是一个块指令(即一组命名指令),它为 WPOven.com 配置虚拟服务器,并确保与上面类似,对

https://wpoven.com./users/json包含 Accept: application/JSON 请求标头将失败并收到 406 响应代码:

server {
listen 80;
listen 443 ssl;
server_name wpoven.com;
location /users/json {
if ($http_accept != application/json) {
return 406 https://wpoven.com/users/json$request_uri;
}
}
}

现在,您需要彻底检查 nginx.conf 文件,看看是否存在任何可疑的、异常的指令或包含 406 标志的行。 如果发现任何错误,请将其标记为“评论”,然后重新启动服务器以查看错误是否消失。

8. 调试WordPress

正如我们之前提到的,许多 Web 应用程序都为您提供错误日志,甚至可以随之进行调试。

调试是一个涉及找出应用程序代码中较小的错误或错误并删除它们的过程。 要了解有关 WordPress 调试的更多信息,请查看我们的专门帖子“WordPress 调试:如何启用 WP_DEBUG?”

9. 检查服务器安全规则

  • 服务器的安全规则旨在保护您的服务器和网站免受 DDoS 攻击等恶意活动的影响。
  • 但有时,这些规则可能过于严格,导致合法请求被阻止并触发 406 错误代码。
  • 例如,如果安全规则配置为阻止来自特定 IP 地址的请求,它也可能会无意中阻止真正的用户。
  • 为了避免这种情况,检查您的服务器安全规则非常重要,如果可能的话,进行少量调整以允许有效请求而不违反网站的保护和功能。

如何防止406错误?

为了防止您的网站出现 406 错误,请考虑实施以下注意事项。

  • 查看安全规则:
    • 检查并审查您的服务器上实施的安全规则。 确保它们的配置稳健但不过分严格。
    • 如果可能,自定义安全规则以允许必要且合法的请求。
  • 更新插件和主题:
    • 让您的插件和主题保持最新。 开发人员经常发布更新来解决错误并提高兼容性,从而减少导致 406 错误的冲突的可能性。
  • 监控服务器日志:
    • 定期检查服务器日志是否有任何异常活动或错误消息。 及时解决任何问题,防止其升级为 406 错误。
  • 测试变更:
    • 在实施重大更改(例如添加新插件或主题)之前,请在暂存环境中对其进行测试。 这使您可以在潜在冲突影响实时站点之前识别并解决它们。 除非非常必要,否则请勿修改或更改您的 WordPress 核心文件。
  • 仅安装受信任的插件或主题:
    • 仅在必要时才尝试安装信誉良好且值得信赖的插件、主题或扩展。
  • 数据库清理:
    • 时不时地通过删除垃圾文件和已删除插件的痕迹来清理或优化数据库。
  • 定期实施调试:
    • 定期调试服务器成为惯例。 这将使您的服务器为访问者提供健康、更流畅的网站体验。
  • 咨询托管提供商:
    • 如果您的网站是托管的,请咨询您的托管提供商以获取帮助。 他们也许能够识别服务器端问题或帮助您优化服务器设置以避免 406 错误。
  • 使用内容分发网络 (CDN):
    • 实施 CDN 可以帮助高效分发网站内容并减少出现服务器相关错误(包括 406 错误)的可能性。
  • 定期备份:
    • 定期备份您的网站。 如果发生错误,最近的备份可以让您快速将网站恢复到工作状态。

结论

就像任何 HTTP 错误一样,您可以修复 406 Not Acceptable 错误。 然而,您需要采取的第一步是找出触发它的根本原因。

由于它不是常见的 HTTP 错误代码,因此如果配置不正确,您仍然可能会时不时地遇到它。

如果您对此 406 错误有任何建议或疑问,请在下面的评论部分告诉我们。


经常问的问题

如何修复 406 错误?

您可以按照以下故障排除方法轻松修复 406 错误:
1. 检查输入的URL是否正确
2. 重置并配置您的网络和设备
3. 回滚最近的 WordPress 更新
4.卸载最近添加的扩展、插件或主题
5. 查找任何数据库记录更改
6.检查服务器日志
7.检查Web服务器配置
8. 调试WordPress
9. 检查服务器安全规则

406是什么意思?

406错误代码表示服务器不接受客户端的请求。 当服务器无法生成与请求标头中指定的可接受值列表匹配的响应时,它会触发。

HTTP 404 和 406 有什么区别?

HTTP 404 Not Found表示服务器找不到所请求的资源,通常是由于缺少网页或 URL 不正确。 而HTTP 406 Not Acceptable表示服务器无法生成与请求标头中指定的条件(例如内容类型或语言)相匹配的响应。 当服务器无法满足客户端指定的要求时,就会发生这种情况。