昨天折腾主题,临时停用了缓存插件 WP Super Cache,之后再次开启,不久有浏览用户反映打开网页会提示下载.gz 文件。

删除 WP Super Cache 插件并清空缓存文件,再次重新安装并启用,问题依旧,我使用的是 mod_rewrite 缓存模式,检查站点根目录的.htaccess 文件 Mod Rewrite 规则已写入,没有问题,最后发现居然是默认的缓存文件存放目录 wp-content/cache/中的另一个.htaccess 中的规则没有更新。

正常应该类似:

  1. # BEGIN supercache
  2.   <FilesMatch ".html.gz$">
  3.     FileETag None
  4.   AddEncoding gzip .gz
  5. </IfModule>
  6.   SetEnvIfNoCase Request_URI .gz$ no-gzip
  7. <IfModule mod_headers.c>
  8. "Accept-Encoding, Cookie"
  9.   Header set Cache-Control 'max-age=3, must-revalidate'
  10. <IfModule mod_expires.c>
  11.   ExpiresByType text/html A3
  12. END supercache

如果你的站点也有类似的问题,请检查缓存目录 wp-content/cache/中的.htaccess 文件,是否有规则写入。

可以尝试到 WP Super Cache 插件设置中更新 Mod Rewrite 规则。