0

我在我的网站上包含压缩时遇到问题。使用 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 -> style.css.gz -rename-> style.css -load to ftp and replace original。Google 的 PageSpeed 显示“太好了!启用压缩!这是您的速度点”,但我的浏览器显示“我的 style.css 在哪里,这是什么类型的 cr*p?” - 因为 style.css 的响应没有“编码 gsip”标头。

谢谢指教!!!

4

1 回答 1

1

解决方案非常简单。问题出在 apache 配置中:AllowOverride指令。

AllowOverride None

必须改为:

AllowOverride AuthConfig FileInfo

要不就 AllowOverride All

那么,如果要优化浏览器缓存

利用浏览器缓存

并设置ExpiresActive on,将您的 HTTPD.conf 配置为:

AllowOverride AuthConfig FileInfo Indexes

要不就 AllowOverride All

问题是,主机管理员帐户是否会更改设置.....

于 2013-09-06T07:25:39.663 回答