如何修复“Specify a Vary: Accept-Encoding Header”警告

错误类型:
浏览器错误
错误名称:
指定一个变化:接受编码头
英文名称:
Specify a Vary: Accept-Encoding Header
错误描述:
原则上,这不是一个错误。这是一个HTTP报头和应包括在每一个原始服务器的响应,因为它告诉浏览器客户端是否能够处理压缩内容的版本。

如何修复“Specify a Vary: Accept-Encoding Header”警告

您是否在Pingdom、GTmetrix或Google PageSpeed Insights等网站测速中看到过“Specify a Vary: Accept-Encoding Header”警告?这是一个HTTP报头和应包括在每一个原始服务器的响应,因为它告诉浏览器客户端是否能够处理压缩内容的版本。

例如,假设您有一个没有gzip压缩的旧浏览器和一个带有它的现代浏览器。如果您不使用Vary: Accept-Encoding标头,您的Web服务器或CDN可能会缓存未压缩版本并错误地将其传送到现代浏览器,这反过来会损害您的WordPress网站的性能。通过使用Vary: Accept-Encoding标头,您可以确保您的Web服务器和/或CDN提供适当的版本。

根据报告它的工具或软件,警告可能以几种不同的方式出现:

  • “Specify a Vary: Accept-Encoding Header”
  • 以下可公开缓存、可压缩的资源应具有“vary: accept-encoding”标头

在Pingdom中指定Vary: Accept-Encoding标头警告

在Pingdom中指定Vary: Accept-Encoding标头警告

请按照以下有关如何修复“Specify a Vary: Accept-Encoding Header”警告的步骤操作。

修复“Specify a Vary: Accept-Encoding Header”警告

关于此警告需要注意的第一件事是,您只能针对服务器上的请求修复此问题。如果您有3rd方请求,您会看到此内容,则您无能为力,因为您无法控制他们的Web服务器。尽管随时与他们分享这篇文章。

Accept-Encoding标头

Accept-Encoding标头

标头适用于您的WordPress资源和您的原始服务器请求。对于您的网站资源,如果您使用的是CDN,许多资源已经默认应用了Vary: Accept-Encoding。KeyCDN、Cloudflare和CloudFront都利用了这一点。许多WordPress缓存插件也添加了这一点。

如果您仍需要修复此问题,则需要向服务器添加一些代码。

修复Apache中的“Specify a Vary: Accept-Encoding Header”警告

要在Apache中修复此问题,请通过FTP将以下代码添加到您的 .htaccess 文件中。该文件可以在您的服务器的根目录中找到。如果您的权限设置正确,您还可以使用Yoast SEO插件编辑您 .htaccess 文件。

重要的!如果操作不当,编辑您的 .htaccess 文件可能会破坏您的网站。修改前,建议先备份原文件。

<IfModule mod_headers.c>
  <FilesMatch ".(js|css|xml|gz|html)$">
    Header append Vary: Accept-Encoding
  </FilesMatch>
</IfModule>

修复NGINX中的“Specify a Vary: Accept-Encoding Header”警告

要在NGINX中解决此问题,请将以下代码添加到您的配置文件中。所有NGINX配置文件都位于该/etc/nginx/目录中。主要配置文件是/etc/nginx/nginx.conf.

gzip_vary on

使用Vary: Accept-Encoding标头实际上可以帮助加速您的WordPress网站,因为它将确保您使用gzip压缩。如果一切顺利,并且您没有任何未正确使用标头的3rd方请求,您应该会使用Pingdom等网站速度测试工具(如下所示)看到您的分数有所提高。

Specify a Vary: Accept-Encoding header警告

Specify a Vary: Accept-Encoding header警告

评论留言