GZIP compression + htaccess deflate

9

我可以同时使用以下两个.htaccess文件吗:

  DEFLATE 

关于 PHP、图片、HTML 文件等相关内容,需添加 PHP 头部:

  ob_start("gzhandler") ?

如果不是这个机会,那么最好的机会是什么?我只是担心它是否会冲突。
1个回答

30

在网页上使用图像压缩通常不是一个好主意,因为大多数常用的图像格式已经被压缩过了,所以你只会给文件添加不必要的开销。而对于那些文字性质的资源(如HTML、CSS、JavaScript等),你通常希望使用压缩,因为这些资源的压缩比例非常高。

至于问题本身,据我所知,目前不可能同时使用DEFLATEGZIP,但是由于我从未尝试过这样的情况,请耐心看待如果这一信息是不正确的。

至于选择哪一种,我强烈建议您查看以下文章,在其中可以看到DEFLATEGZIP各自的优缺点:

为什么在Apache中针对文本文件使用deflate而不是gzip?

我个人在可能的情况下使用DEFLATE,因为有时候通过.htaccess更容易实现,而不必深入代码。 我还喜欢快速禁用该功能进行测试或开发。

Apache Server Configs项目有一个非常全面的.htaccess文件,因此您可能想要查看该项目HERE

现在,虽然该文件非常全面,但是您可能只想使用像以下这样的普通情况配置:

# -----------------------------------------------------------------------
# Defining MIME types to ensure the web server actually knows about them.
# -----------------------------------------------------------------------
<IfModule mod_mime.c>
    AddType application/javascript          js
    AddType application/vnd.ms-fontobject   eot
    AddType application/x-font-ttf          ttf ttc
    AddType font/opentype                   otf
    AddType application/x-font-woff         woff
    AddType image/svg+xml                   svg svgz 
    AddEncoding gzip                        svgz
</Ifmodule>

# -----------------------------------------------------------------------
# Compressing output.
# -----------------------------------------------------------------------
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
    AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
</Ifmodule>

好的,谢谢。这个代码可以吗?ExpiresActive on <FilesMatch ".(ico|pdf|flv|js|css|swf|class|php|jar|bmp|css|woff|ttf|svg|eot)$"> ExpiresDefault A2592000 Header unset Cache-Control SetOutputFilter DEFLATE </FilesMatch> - JKMadsen
1
那段代码与压缩无关。请查看我的更新答案,了解一些“最佳实践”。 - user188654
这对我有效,但是AddOutputFilterByType DEFLATE text/xml application/xml text/x-component这一行在Windows 7上(所有浏览器)产生了一个大错误,导致网站无法传递(cPanel,带有URL重写的TYPO3)。我将其注释掉了。 - Urs
看起来 HTML5 Boilerplate 的链接已经失效了。这里是一个有效的链接,但我是否有正确的文件呢?:https://github.com/h5bp/html5-boilerplate/blob/master/dist/.htaccess - Travis Hohl
@thohl 是的,那是正确的链接。唯一的区别是 .htaccess 现在使用了稍微不同的语法。我已经更新了我的答案。 - user188654

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接