使用 .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 deflate
和 sudo 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 扩展时出现问题