服务器和客户端错误偶尔会发生,我们通常将它们称为 HTTP 响应或状态代码。“406 错误”或“406 不可接受”错误就是这样一种 HTTP 响应。
尝试免费演示
您可能会在访问网站时看到 406 错误。或者更糟的是,在您的网站上。虽然它可能会激怒普通互联网用户,但对于网站或应用程序所有者来说,它可能是可怕的。除了看起来有些不专业和令人困惑之外,任何 HTTP 响应代码,包括 406 错误,都可能失去销售和用户。
本文将解释“406 Not Acceptable”错误的基础知识、原因、修复方法以及将来避免它的步骤。
什么是 406 错误?
好消息是 HTTP 错误“406 Not Acceptable”消息并不像 404 服务器错误(通常表示网页不存在),甚至 301 或 500 HTTP 错误那样常见。因此,你绝对不应该看到这么多。
信息
浏览最常见的 WordPress 错误代码并了解它们。
尽管这种情况很少见,但 406 错误仍有可能成为您网站的问题。它通常看起来像这样:
“406 Not Acceptable”消息的一个示例。
该消息通常为:
不能接受的
在此服务器上找不到所请求资源的适当表示。
然后它有时会识别问题所在的“请求的资源”,并在末尾提到其他消息或服务器信息:
一些 406 错误显示被拒绝的资源。
406 错误消息中的外观和文本取决于用于访问该网站的网站、主机和浏览器。406 错误可能会揭示错误的来源。其他时候,您可能会发现这是一个简单的“406 Not Acceptable”错误,没有任何信息可以帮助您解决问题。
现在,让我们假设浏览器说的是简单的英语而不是这些神秘的信息。在这种情况下,浏览器会说这样的话:
你好,我是浏览器。我试图显示此网页,但发生了两个问题之一:
- 该网站的服务器向我发送了错误的文件格式,因此我无法接受。
- 该网站的服务器违反了某些设置或安全要求。
因此,请解决违规问题或让服务器使用我接受的文件格式之一。如果您想知道,这里是我知道如何阅读的文件格式。
要是浏览器这么友好就好了!
本质上,服务器与用于呈现 Web 应用程序的浏览器或机器之间存在错误通信。浏览器要么无法读取传入的内容,要么无法验证数据,因为它不符合某些要求。
现在我们必须回答一些问题来找出造成这种沟通不畅的原因。
但这并没有让他们不那么沮丧吗?在此深入指南中了解如何修复一个常见错误?点击推文
是什么导致了 406 错误?
每次打开网页时,您的浏览器(如 Safari、Firefox、Brave、Chrome 或 Internet Explorer)都会向页面服务器发送请求以获取站点内容和数据库文件。浏览器充当您和服务器之间的信使——它告诉服务器用户想看到什么,并希望返回正确的信息。
在第一个请求期间,浏览器会告诉服务器它可以接受的所有文件格式。它被称为 Accept-header 请求,它提示服务器以正确的格式传送文件以生成整个网站或 Web 应用程序,从头开始。
有时,服务器会发送格式不合适或违反浏览器或客户端计算机规定的规则的回复。在这种情况下,浏览器窗口中会出现 406 错误,表明服务器没有提供适当的数据。
以下是标头请求中可能出现的“错误格式”和“违反规则”的一些示例:
- 接受范围:一些服务器设置了安全措施或只允许响应中的特定文件大小范围。如果响应尝试发送超出允许范围的太多字节,您将看到 406 错误。
- Accept-encoding:这是用于压缩文件的标题区域,因此它们可以快速从服务器移动到浏览器。不接受某些压缩方法和格式,从而呈现 406 错误代码。
- Accept-charset:指字符集或站点文件表如何获取代码(如 CSS 和 HTML)并将其转换为可理解的字符。世界上有太多的字符、语言和符号,要涵盖所有这些是一项挑战。标准表称为 ISO-8859,但也有其他补充表。偶尔会发布新的字符表以跟上语言和字符的添加。
- Accept-language:这通常是 Accept-charset 的不同名称,它引用了它对国际语言的关注。
- MIME 类型冲突:有时,浏览器会从服务器请求特定的 MIME 类型。MIME 类型是内容元素,如 JPEG 图像、特定视频格式或简单文本。如果服务器无法提供请求的 MIME 类型(如 JPEG 图像),您将看到 406 错误。
解决和修复 406 错误的主要方法是检查 Accept-、Request- 和 Response- 标头中的问题的源代码。
查看 Accept- 和 Response- 标头的最简单方法是在浏览器中打开一个网页,右键单击并选择“检查”。
转到网络 > 标题以显示来自此网页的所有请求。
右键单击并在浏览器中选择“检查”,然后转到“网络”和“标题”选项卡。
您通常可以从长列表中选择任何请求以查看该特定请求的 Request- 和 Response- 标头。
单击列表中的任何请求以查看诸如 Response- 和 Request- 标头之类的内容。
或者,您可以联系您的 Web 开发人员以查看源代码。但是,当您拥有用于调试和清理数据库的工具时,检查源代码会容易得多,我们将在本文后面讨论。
如前所述,“406 Not Acceptable”错误告诉我们客户端已向服务器发送了有效请求,但该请求包含服务器必须遵循的唯一要求。初始请求中的特殊要求采用 HTTP Accept- 标头的形式。
这给我们留下了一些潜在的原因:
- 服务器未提供请求的 MIME 类型或正确的格式,如 JPEG 或 mp4 视频。
- 服务器没有返回正确的语言(接受语言)。例如,当浏览器要求提供法语时,它可能会以德语返回响应。
- 服务器在响应接受编码请求时使用了错误的压缩方法或格式。
- 服务器发回了太多与 Accept-ranges 请求不一致的字节。
- 服务器未能提供可理解的字符,这将导致来自浏览器的 Accept-charset 请求出现问题。
您可能会看到 406 错误还有其他原因,但它们并不常见。上面的列表是从最常见到最不常见的原因。前两个比其他两个更频繁地发挥作用,因此您很有可能通常应该专注于排除 MIME 类型违规或接受语言问题的可能性。
总体而言,网站所有者应该了解这些格式问题和违规行为,了解您网站文件中的某些内容可能会导致问题。此类情况经常因人为错误而发生,例如不小心输入错误的代码、删除必要的代码或错误配置服务器。当特定的安全设置或规则阻止来自服务器的内容传输时,也会出现 406 错误。
如何修复 406 错误
在完成解决 406 错误的任何步骤之前运行网站或应用程序备份是谨慎的。访问站点的源代码总是有可能导致进一步的问题,因此您需要在必要时进行数据库和站点文件备份以进行恢复。
确保您完成了从数据库到应用程序以及媒体元素到站点文件的所有内容的完整备份。如果您是 Kinsta 用户,则可以使用 MyKinsta 备份功能执行此操作,该功能将您的整个网站记录在一个单独的文件中,并有一个“恢复”按钮供以后使用:
在 MyKinsta 仪表板中运行每日、每小时或手动备份。
现在我们对 406 错误发生的原因有了更深入的了解,是时候讨论解决错误并防止它再次发生的最佳方法了。
这些策略包括客户端原因(用户出错或机器无法正常工作)、服务器端原因和基于平台的原因,如插件错误。
确保 URL 正确
我们的第一条建议听起来可能很简单,但它是最快的故障排除选项,并且将重点放在客户端(即您的计算机)的问题上。
在这种情况下,404 错误比 406 错误更有可能发生,但如果网站 URL 有效,您最终可能会看到“406 Not Acceptable”错误。然而,浏览器转换请求的方式有些奇怪。例如,在 URL 末尾添加“JSON”或“PHP”可能会被误解为对这些特定格式的请求,即使客户端不需要它们。
要解决此问题,请仔细检查之前使用的导致错误的 URL。尝试再次输入它或在网站上选择不同的子域,看看它是否只有一个页面没有呈现。
406 消息在技术上被认为是客户端错误代码(即使它通常是平台或服务器问题),因此这是确定客户端是否有问题的第一个操作过程。
重置您的设备和网络
另一个客户端问题偶尔涉及从用户计算机发送到无法满足请求的平台的相同 Accept- 标头。其中许多平台包括 Hulu 等面向游戏或媒体的系统或 Spotify 等音乐市场。
简单来说,您可能会登录 Hulu 等平台,尝试观看自己喜欢的电视节目,但会收到 406 错误消息。在这个例子中,问题几乎总是在客户端。它通常是您用来启动平台的计算机、网络或其他设备。
订阅时事通讯
想知道我们是如何将流量增加超过 1000% 的吗?
加入 20,000 多名其他人的行列,他们会收到我们的每周时事通讯,其中包含 WordPress 内幕技巧!
现在订阅
尽管任何平台都可能发生这种情况,但一些通常报告 406 错误的平台包括:
- Hulu
- 谷歌播放
- 史克威尔艾尼克斯游戏
- 网飞
- Xbox
- Windows(通常用于游戏)
此列表远非完整,但它可以让您了解 406 错误可能发生的位置。
媒体和游戏平台很复杂,有很多限制,而这些限制取决于您的位置或网络配置。由于所有移动部件,您可能会遇到这样的错误。
尽管我们无法帮助您对每个特定平台进行故障排除,但请考虑执行以下建议并检查错误是否已解决:
- 上网检查您平台服务器的状态。可能只是公司服务器的问题。
- 重新启动您的计算机、游戏系统、流媒体设备或其他机器。
- 断开所有设备与电缆的连接,等待几分钟,然后重新连接所有设备,然后检查错误是否消失。
- 检查应用程序是否正在运行最新版本。另外,查看您的任何机器是否有可用的固件更新。
- 重置您的家庭或办公室网络(通过路由器的 WiFi 或互联网连接)。
- 如果您仍然遇到问题,请考虑从无线网络切换到有线网络连接。
- 尽管这并不总是可能的,但请考虑使用完全不同的机器复制错误。确保设备在同一网络上。如果您无法复制错误,请查看您的网络和原始机器。
如果所有其他方法都失败了,请转到您的搜索引擎并输入您的平台名称以及“+ 406 错误代码”以获得特定于平台的故障排除建议。这通常会显示论坛和支持文档,以指导您完成整个过程。
回滚您最近的 CMS 更改
接下来,是时候探索用于您的网站或应用程序的系统了。您可能会发现,您的内容管理系统(例如 WordPress)是“406 Not Acceptable”错误的直接原因,原因是站点文件中的某些内容复杂化。
无论是使用 WordPress 还是任何其他内容管理系统,请查看上次更新的时间。无论如何,WordPress 都有一个坚固的默认基础架构,旨在避免这些类型的错误。
但是,特定的插件、主题或手动调整的编码可能会产生站点文件违反客户端或服务器请求的情况。简单升级到 CMS 的最新版本即可立即解决问题。
要确定它是否是您的 CMS,首先要回滚发生在核心文件上的任何最近的升级。您可能已经知道,WordPress 会定期向其系统发送更新。大多数这些更新会自动发生,但旧版本仍然需要您单击按钮。
此外,WordPress 和其他 CMS 使用多个移动部件,如插件、主题和扩展。这些也会定期更新,因此您可能需要回滚其中的一些。
对于 WordPress 之外的所有系统,搜索“平台名称 + 如何降级”。
如果您使用 WordPress,您可以轻松降级您的 WordPress 网站,有效地将其回滚到以前的版本之一:
降级到以前的 WordPress 版本。
该指南概述了以下降级 WordPress 网站的方法,其中大部分只需要几分钟:
- 手动降级您的 WordPress 网站。
- 使用插件完成WordPress系统降级。
- 恢复以前的备份以恢复旧版本,或者至少是以前的内容和文件。
- 手动降级主题或插件。
- 使用单独的插件降级插件或主题。
- 切换到旧版本的 PHP。
卸载和重新安装插件、主题和扩展
WordPress 插件和主题向与核心 WordPress 文件交互的站点文件添加额外代码。信誉良好的插件通常不会引起任何问题,但偶尔会发生冲突。插件、主题或第三方扩展可能是 406 错误的原因。
需要为您的新电子商务网站提供一流、快速且安全的托管服务?Kinsta 提供超快的服务器和 WooCommerce 专家提供的 24/7 世界级支持。查看我们的计划
识别麻烦的插件或主题的行之有效的方法是一一停用您的插件和主题。禁用每个后,检查 406 错误是否已消失。如果是这样,你就找到了问题所在。如果它没有消失,请重新安装插件或主题并继续卸载下一个。
转到 WordPress 中的插件选项卡并一个一个地停用每个插件。
重要的
从您的插件开始,然后转到主题。卸载和重新安装主题具有更大的内容重新排列潜力。
分析数据库的变化和冲突状态
不幸的是,删除的“问题”插件仍然可能会影响您的 WordPress 数据库,因为插件可以完全访问数据库才能正常工作。因此,即使插件的删除使 406 错误消失,您仍然应该检查数据库的状态。否则,您将来仍有可能会遇到更多问题。
如果插件或主题不是罪魁祸首,您还应该检查数据库是否是错误的主要来源。有时,数据库更改,无论是偶然的还是有意的,都会成为出现 406 错误的主要原因。
要扫描和修复您的数据库,请考虑以下解决方案:
- 安装一个数据库扫描器和清理器,删除无用和麻烦的表和资产。一些选项包括 WP Optimize 和 Advanced Database Cleaner。这个过程的大部分内容涉及删除旧的或孤立的项目,如垃圾帖子、修订和元数据。这是清理数据库并可能消除 406 错误的坚实第一步。
- 扫描数据库并查找可能被有问题的插件或看起来不合适或不必要的插件更改的记录和表。
- 如果您知道您的数据库出了什么问题,请访问搜索引擎并从论坛和其他在线讨论中寻求帮助。其他人很有可能遇到过同样的问题。
使用 WP-Optimize 等优化工具清理数据库。图片来源:WP-Optimize
信息
Kinsta 托管不依赖于 Apache,而是依赖于 Nginx。如果您遇到 406 错误,请随时联系 Kinsta 客户支持或您的托管服务提供商寻求帮助。
分析您的服务器日志
之前的建议侧重于客户端和面向 CMS 的故障排除。现在我们将考虑所有服务器端问题。如果您没有使用 CMS 或知道 406 错误与您的 CMS 或客户端计算机没有连接,则此提示以及以下提示是最佳选择。
服务器故障排除的第一步是检查日志。无论您使用什么类型的 Web 应用程序、CMS 或 Web 设计系统;他们都有服务器端日志。
应用程序日志存储该 Web 应用程序的整个(或最近)历史记录,以及有关每个数据库查询、提供的结果、请求的页面等等的信息。另一方面,服务器日志包含有关用于运行 Web 应用程序的服务器或硬件的运行状况和状态的信息。
对于 Kinsta 用户,您可以在 MyKinsta 仪表板中找到错误和服务器日志。检查所有可能导致 406 错误的日志:
- error.log 文件
- kinsta-cache-perf.log 文件
- access.log 文件
要查看三个必要的日志,请单击“站点”选项卡,选择您的站点,然后单击“日志”按钮,以及下拉菜单中的日志类型。
您还可以使用 FTP 客户端检查原始访问和 WordPress 错误日志文件。其他选项包括在 wp-config.php 中启用错误日志并在 MyKinsta 仪表板中进行调试模式。
如果您在查找错误日志时遇到问题或不知道如何解释它们,请联系 Kinsta 客户支持团队寻求帮助。
调试 Web 应用程序(如 WordPress)
就像大多数 Web 应用程序都有服务器和错误日志一样,它们通常也提供有关调试应用程序本身的信息。调试涉及通过应用程序的代码来查找和消除小错误(或错误)。
运行 WordPress(以及任何与此相关的任何 Web 应用程序)完整扫描的最佳方法之一是调试数据库和网站文件。幸运的是,调试并不意味着您必须通读每一行代码并自己找出错误。程序可用于此特定目的,正如我们前面提到的,Kinsta 甚至在 MyKinsta 仪表板中有其调试工具。
通过学习使用 Kinsta 调试模式、WordPress 调试插件或更多手动过程调试 WordPress 的基础知识,开始调试过程:
站点 > 工具将您带到一个页面,以激活 Kinsta 仪表板中的 WordPress 调试模式功能。
防止将来出现 406 错误
406 错误的问题在于它可以在许多不同的情况下弹出。作为普通消费者浏览 Hulu 或 Netflix 时,您可能会看到“406 Not Acceptable HTTP”错误。
这不是很愉快,但没有什么是一点点故障排除无法解决的。更令人担忧的是 406 错误发生在您的网站或应用程序上。对于这些实例,您需要检查服务器和 CMS 站点文件。
如果是您的网站,您将希望防止错误再次发生。插件、主题和人为错误总是会起作用,但我们有一些建议可以让您的数据库和站点文件在未来保持干净:
- 仅安装必要且信誉良好的插件、主题和扩展。始终将这些元素保持在最低限度。
- 永远不要修改核心 WordPress 文件,除非您绝对必须并且知道自己在做什么。
- 定期运行数据库清理器和站点优化器。我们建议每个月完成这个过程,最好找到一个在后台自动运行的更干净的插件。
- 养成调试服务器和 Web 应用程序的习惯。如前所述,Kinsta 在其仪表板中提供了调试功能。许多其他应用程序也具有此类功能。
- 设置您的网站或应用程序的自动备份。这样,代码冲突或错误不会给您带来太大压力,因为您可以恢复网站的先前版本并从那里开始。
- 在您计划更新 WordPress 和任何插件之前运行您的站点的手动备份,即使您已经运行了自动备份(安全总比抱歉好)。在编辑任何文件或向站点添加新代码之前运行备份也是明智的。
除了看起来不专业和引起混乱之外,406 错误还会导致您失去销售或用户?在此处了解如何修复它⬇️点击推文
概括
您可以通过多种方式修复 406 错误。只要您知道所看到的内容以及在哪里寻找修复程序,您就应该能够清除错误。
虽然这不是更常见的 WordPress 错误之一,但如果您的配置不正确,您会不时看到它。
对于解决“406 Not Acceptable”错误,您还有其他建议吗?请在下面的评论部分分享它们!
通过以下方式节省时间、成本并最大限度地提高站点性能:
- 来自 WordPress 托管专家的即时帮助,24/7。
- Cloudflare 企业集成。
- 全球受众覆盖全球 28 个数据中心。
- 使用我们内置的应用程序性能监控进行优化。
所有这些以及更多,都在一个没有长期合同、协助迁移和 30 天退款保证的计划中。查看我们的计划或与销售人员交谈以找到适合您的计划。