我在我的网站上运行zlib压缩有一些问题。
首先,如果我在.htaccess中使用:php_value output_handler ob_gzhandler启用zlib压缩,那么我将收到数千行以下错误:
PHP警告:无法修改头信息-已在第0行以未知方式发送的标头
我已经检查了所有用于空白的文件和任何其他不应该在十六进制编辑器中存在的字符,但是在.htaccess中打开zlib时,我无法消除该错误。
因此,我尝试使用以下方法打开php.ini文件中的zlib压缩:
zlib.output_compression "1"
zlib.output_compression_level "1"然而,现在压缩检查程序告诉我,我没有打开压缩,所以它似乎没有正确的格式?
发布于 2012-04-26 14:51:55
首先要记住的是,压缩检查程序有时会因为各种原因而说谎,所以请考虑他们的警告。正如一些人最近在Stack Overflow上说的那样,ySlow不是福音(但我自己也喜欢)。
我建议做的,不是在php中使用zlib.output_compression,而是在Apache中启用mod_deflate。这也将捕获和压缩静态文件(例如,如果您有静态文本文件/csv/xml提供服务)。请记住,您不希望压缩大多数多媒体(如图像和视频),因为所涉及的开销相对于文件大小的减少(几乎为零)而言,效率相当低。
下面是一个与httpd2相关的示例,但是有更多的选项可供选择(查看手册):
<Location />
# Insert filter
SetOutputFilter DEFLATE
# 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
# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</Location>https://webmasters.stackexchange.com/questions/28966
复制相似问题