WP Super Cache 与 WordPress 首页乱码

很多主机为了提高 WordPress 网站的响应速度而使用缓存插件,其中很出名的一个就是 WP Super Cache(简称 WPSC)。WPSC 可以提供 2 种类型的缓存页面,一种是普通的 HTML 文件,一种是压缩过的 HTML 文件(gzip 格式)。因为压缩后的文件小了很多,可以非常显著的减少文件传输的时间。但是在某些情况下,启用压缩功能后可能会导致网站首页显示为乱码,或者在访问首页时让你下载某个 gzip 文件而不是显示正确页面。

目前所知的一个情况就是,当服务器使用的是 LiteSpeed (一个经过优化的、替代 Apache 的服务器方案)时会出现这样的错误。而且似乎只出现在网站首页,其它页面不会有乱码的问题。该问题应该是由于 LiteSpeed 内部压缩机制造成的。某些服务器为了提高效率和性能,可能会采用 LiteSpeed 来作为服务器程序。

经进一步验证,出现乱码的情况并不只限于首页,所以遇到此情况时请使用方案二!

解决方案一

很简单,只需要在开启 WPSC 压缩功能的同时,禁止其缓存首页即可。如下图所示,在 WPSC 设置页面的“高级(Advanced)”选项卡里的相应位置,根据你使用的首页情况(1、自定义静态页面做首页;2、默认的首页,也就是最新文章列表)将需要的对应条目勾选,然后保存即可。注意,这里设置的是,如果你勾选,则 WPSC 不对其进行缓存!

解决方案二

解决方案一的缺点就是首页就完全是动态生成的了,也就是连静态 HTML 页面缓存都没有。还有个折衷的方案就是直接禁用压缩功能。这么做其实也没什么不好,甚至可能比方案一更好。因为之所以会出现乱码,是因为 WPSC 的压缩与服务器(通常是 LiteSpeed)的压缩出现矛盾(至于为什么只发生在首页还有待进一步探索)。也就是说,使用 LiteSpeed 的服务器通常都已经启用了压缩功能,你不需要使用 WPSC 提前进行压缩了。放心,这个 on the fly 的及时压缩方式并不会多消耗多少时间,只是会多消耗不少 CPU。

只是我还没想好到底使用上述哪个方案,所以把 2 个都写上,差别应该不是多大。

这些问题在下面的文章中都有提到:

http://paogray.com/2151

https://www.acsite.net/tw/forum/index.php?topic=1728.0

http://www.ttjs.org/enabled-lastest-wp-super-cache.html

另外,http://citydog.me/501.html 一文对该情况只出现在首页的状况进行了描述,并提供了上述解决方案二。

经进一步验证,出现乱码的情况并不只限于首页,所以遇到此情况时请使用方案二!

后记

经过后来使用不同的服务器,我发现出现乱码的情况只发生在 litespeed 服务器中,也许与 litespeed 经过优化有关,存在某些冲突。其它的服务器没发现类似情况。©

本文发表于水景一页。永久链接:<https://cnzhx.net/blog/wp-super-cache-and-messed-up-homepage/>。转载请保留此信息及相应链接。

9 条关于 “WP Super Cache 与 WordPress 首页乱码” 的评论

  1. 引用通告: 理解和使用服务器的压缩传输功能 « 水景一页

  2. wordpress整合后 乱码为不认识的繁体字 我想把的网站和wordpress 整合 就是上面是推广页面,下面是wordpress的文章 有利于收录 上面程序也是php的编码是GB2312的 wordpress是UTF-8的 请问怎样才能 完美整合啊?两个程序是在一个空间里wordpress转在子文件夹。 下面是wordpress的文章 有利于收录 可是我整合出来的却是这样的 上面正常 下面是中文乱码》 现在的网站是这样的 http://www.n5518.com 前辈帮忙!3728136***83QQ 

    • 1、把你的QQ号改了改,免得大家都能看到;
      2、你说的问题似乎与这篇文章无关;
      3、我没有发现你的首页有什么问题。

  3. 果然是这个问题,呵呵,谢谢了,乱码问题已经解决,但首页就是不出现adsense广告,其它页面正常

    • adsense 不显示可以看看是不是这个原因:http://cnzhx.net/blog/adsense-not-display-ad/

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)