【问题标题】:500 error when compressing files with .htaccess使用 .htaccess 压缩文件时出现 500 错误
【发布时间】:2012-08-24 08:01:56
【问题描述】:

我正在尝试使用 .htaccess 压缩文件,但出现 500 内部错误,

这是我正在尝试使用的代码。

# JavaScript compression htaccess ruleset
AddHandler application/x-httpd-php .js
php_value auto_prepend_file gzip-js.php
php_flag zlib.output_compression On

我也试过了,但遇到同样的错误,

<files *.html>
SetOutputFilter DEFLATE
</files>

有什么建议吗?

【问题讨论】:

    标签: php javascript .htaccess compression gzip


    【解决方案1】:

    这对我来说很好用(粘贴到.htaccess):

    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
    

    【讨论】:

      【解决方案2】:

      您是否安装了mod_deflate?试试这个,看看你的错误是否消失。

      <ifModule mod_deflate.c>
      <Files *.html>
      SetOutputFilter DEFLATE
      </Files>
      </ifModule>
      

      如果这解决了 500 错误,那么您可能没有安装 mod_deflate。您可以访问HTTP Compression Test进行测试。

      如果您有访问权限,您可以通过取消注释 httpd.conf 文件中的以下行来启用它。

      LoadModule filter_module modules/mod_filter.so
      LoadModule deflate_module modules/mod_deflate.so
      

      然后您需要为每个要压缩的文件类型添加一个输出类型。

      AddOutputFilterByType DEFLATE application/javascript
      AddOutputFilterByType DEFLATE application/x-javascript
      

      如 cmets 中所述,AddOutputFilterByType 依赖于 mod_filter。如果您仍然收到 500 错误,则应检查该模块是否也已加载。

      您可以在这里阅读更多内容:Use mod_deflate to Compress Web Content delivered by Apache

      我找不到任何说明 Siteground 是否支持 mod_deflate 的文档。他们的知识库建议使用 PHP 中的 gZip。

      How to enable gZIP compression for your pages?
      How to compress my CSS with gZIP?

      【讨论】:

      • 感谢 Nilpo,我不再收到错误消息了,但是当我尝试检查它是否已压缩时,我看不到它应该被压缩,那么我该如何改进它真的被压缩了?,
      • 实际上,如果解决了错误,则说明您没有安装必要的模块。您可以在此处测试页面的压缩:whatsmyip.org/http-compression-test
      • 好的,我在两个站点测试它,它没有压缩,所以我想我需要安装它?
      • @believeme 或者你可以运行 sudo a2enmod deflatesudo service apache2 restart 来加载 mod deflate
      • 请注意其他有此问题的人。除了“mod_deflate”之外,我还必须启用“mod_filter”。干杯。
      【解决方案3】:

      ##放气##

      #mod_filter.so 和 mod_deflate.so

      应该开启!!!!

      <ifmodule mod_deflate.c>
          AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
      </ifmodule>
      

      【讨论】:

      • 请稍微修改一下您的答案,因为它给人一种尖叫的印象。谢谢! :)
      【解决方案4】:

      经过数小时的搜索,我找到了这个article,认为其他人可能会觉得它有帮助,

      享受吧。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多