我在网站上包含压缩时遇到问题。使用WordPress和GZIP压缩HTML托管的网站即使在.htaccess或插件中没有任何行也能正常工作。但是JS / CSS的压缩没有开启。我尝试了很多不同的代码,例如:
<IfModule mod_deflate.c>
<FilesMatch "\.(html|php|txt|xml|js|css)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>
或
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
或
# compress all text and html:
AddOutputFilterByType DEFLATE text/css application/javascript
或
# Or, compress certain file types by extension:
<Files *.css>
SetOutputFilter DEFLATE
</Files>
<Files *.js>
SetOutputFilter DEFLATE
</Files>
甚至在我的header.php中:
<?php ob_start("ob_gzhandler"); ?> //result - site crahes
和其他许多人......
与服务器管理员通信,包括更多的apache修改器:mod_headers,mod_filter和mod_expires,但压缩仍然不起作用。我不明白为什么???以及HTML的压缩工作原理???
我服务器的一些phpinfo():
PHP Version 5.3.3-7+squeeze14
Apache Version Apache/2.2.16 (Debian)
Loaded Modules mod_deflate mod_expires mod_filter mod_headers mod_include mod_mime mod_rewrite etc...
HTTP_ACCEPT_ENCODING gzip,deflate,sdch
Accept-Encoding gzip,deflate,sdch
我尝试过使用很多WP插件,例如:W3 Total Cache,Force GZIP,WP HTTP压缩等......还有......没什么!
然后我尝试手动压缩文件:style.css - &gt; style.css.gz -rename-&gt; style.css -load到ftp并替换原始。谷歌的PageSpeed说“太棒了!压缩已启用!这是你的速度点”,但我的浏览器说“我的style.css在哪里,这是什么样的cr?p?” - 因为style.css的响应没有“encoded gsip”标头。
感谢您的建议!!!
答案 0 :(得分:1)
解决方案非常简单。问题在于apache配置:AllowOverride
指令。
AllowOverride None
必须更改为:
AllowOverride AuthConfig FileInfo
或者只是
AllowOverride All
然后,如果您想优化浏览器缓存
利用浏览器缓存
并设置ExpiresActive on
,将您的HTTPD.conf配置为:
AllowOverride AuthConfig FileInfo Indexes
或者只是
AllowOverride All
问题是,托管管理员帐户是否会更改设置.....