我有一个Liquid Web VPS帐户,我确保已安装mod_deflate并且正在运行/活动.
我曾经通过PHP gzip将我的css和js文件以及我的PHP文件本身压缩.但是,我现在正尝试通过mod_deflate进行此操作,除了PHP文件以外,它似乎对所有文件都适用. (Txt文件可以正常工作,css,js,静态HTML文件,只是通过PHP文件不会生成的文件.)如何解决此问题?
(我使用了cPanel中“优化网站”下的“压缩所有内容”选项,该选项在主目录中创建一个.htaccess文件(不是public_html,比该目录高一个级别),其文本与“压缩除图像外的所有内容”完全相同“ http://httpd.apache.org/docs/2.0/mod/mod_deflate.html上的示例)
.htaccess文件:
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
<IfModule mod_setenvif.c>
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$no-gzip dont-vary
</IfModule>
<IfModule mod_headers.c>
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>
解决方法:
自从我发布这个问题以来已经有一段时间了-我最终通过PHP.ini启用zlib压缩,因此zlib压缩PHP输出,而mod_deflate压缩其他所有内容.
我在想它不起作用的原因(mod_deflate不能压缩PHP输出)与以CGI而不是Apache DSO运行的PHP有关…