通过在 .htaccess 中启用 gzip 来提高 magento 速度

Posted

技术标签:

【中文标题】通过在 .htaccess 中启用 gzip 来提高 magento 速度【英文标题】:Boosting magento speed by enabling gzip in .htaccess 【发布时间】:2013-01-22 13:48:00 【问题描述】:

抱歉,如果这是一个菜鸟问题,但我最近才知道通过在 magento 中启用 gzip 可以提高应用程序的速度。但是 magento 目录中的 .htaccess 文件似乎太多了。那么我必须在所有目录上启用还是仅在/var/www/html/magento/.htaccess 上启用?

/var/www/html/magento/.htaccess
/var/www/html/magento/.htaccess.sample
/var/www/html/magento/app/.htaccess
/var/www/html/magento/downloader/.htaccess
/var/www/html/magento/downloader/template/.htaccess
/var/www/html/magento/errors/.htaccess
/var/www/html/magento/includes/.htaccess
/var/www/html/magento/lib/.htaccess
/var/www/html/magento/media/.htaccess
/var/www/html/magento/media/customer/.htaccess
/var/www/html/magento/media/downloadable/.htaccess
/var/www/html/magento/pkginfo/.htaccess
/var/www/html/magento/var/.htaccess

【问题讨论】:

【参考方案1】:

您可以使用以下代码通过 .htaccess 文件启用 gzip:

##### files compression for better site speed #####

<IfModule mod_deflate.c>
 AddOutputFilterByType DEFLATE text/plain
 AddOutputFilterByType DEFLATE text/html
 AddOutputFilterByType DEFLATE text/xml
 AddOutputFilterByType DEFLATE text/css
 AddOutputFilterByType DEFLATE application/xml
 AddOutputFilterByType DEFLATE application/xhtml+xml
 AddOutputFilterByType DEFLATE application/rss+xml
 AddOutputFilterByType DEFLATE application/javascript
 AddOutputFilterByType DEFLATE application/x-javascript
 BrowserMatch ^Mozilla/4 gzip-only-text/html
 BrowserMatch ^Mozilla/4\.0[678] no-gzip
 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
 SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
 Header append Vary User-Agent env=!dont-vary
</IfModule>

也可以参考我的博客:http://blog.rahuldadhich.com/magento-speed-optimization-htaccess/

【讨论】:

【参考方案2】:

.htaccess 设置流程自上而下。

除非您知道自己在做什么,否则不要弄乱 Magento 根目录下的子目录 .htaccess 文件,它们是用来保护 Magento 系统的。例如,弄乱app/etc/.htaccess 可能会暴露您的加密密钥和数据库访问凭据,如果您启用了对 mysql 的远程访问,这是一个特别致命的错误。你刚刚把你王国的钥匙交给了外界。

要启用 deflate/gzip,首先您的 apache 服务器必须启用正确的模块 (mod_deflate)。然后在 Magento 根文件夹中的 .htaccess 文件中查找设置并启用压缩。 Magento 会为您预先安装它,但会注释掉这些行。

要查看您的系统是否支持 deflate/gzip,请创建一个 &lt;?php phpinfo(); ?&gt; 文件,运行它并查找在 apache2handler 下加载的 mod_deflate。以下是示例

Loaded Modules core mod_log_config mod_logio prefork http_core mod_so mod_actions
               mod_alias mod_auth_basic mod_authn_file mod_authz_default 
               mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex 
               mod_cgi mod_deflate mod_dir mod_env mod_expires mod_fastcgi 
               mod_headers mod_include mod_mime mod_negotiation mod_php5 
               mod_reqtimeout mod_rewrite mod_setenvif mod_ssl mod_status 
               mod_suexec

Magento 的预加载 .htaccess 部分需要进行一些修改才能启用 deflate/gzip 删除相应行前面的 # 以启用压缩,如下所示:

############################################
## enable apache served files compression
## http://developer.yahoo.com/performance/rules.html#gzip

    # Insert filter on all content
    ###SetOutputFilter DEFLATE
    # Insert filter on selected content types only
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript

    # 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

【讨论】:

以上是关于通过在 .htaccess 中启用 gzip 来提高 magento 速度的主要内容,如果未能解决你的问题,请参考以下文章

apache_conf 启用GZIP压缩#optimization #gzip #htaccess

apache_conf 启用GZIP压缩(.htaccess)

无法启用压缩(deflate/gzip)

通过 .htaccess 设置过期标头和压缩数据

通过.htaccess的Gzip压缩不起作用

wordpress Gzip压缩不起作用如何在浏览器中检查它