使用 .htaccess 压缩文件时出现 500 错误

Posted

技术标签:

【中文标题】使用 .htaccess 压缩文件时出现 500 错误【英文标题】:500 error when compressing files with .htaccess 【发布时间】: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>

有什么建议吗?

【问题讨论】:

【参考方案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,认为其他人可能会觉得它有帮助,

享受吧。

【讨论】:

以上是关于使用 .htaccess 压缩文件时出现 500 错误的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 ErrorDocument 处理请求时出现 500 内部服务器错误

将 url 提供为 dir/file/file 时出现 500 内部错误

尝试使用 .htaccess 文件删除 .php 扩展名时出现 403 禁止错误

使用 .htaccess 删除 .html URL 扩展时出现问题

.htaccess - 尝试强制 https 时出现“重定向过多”

包含自定义404错误页面时出现.htaccess问题