微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

应用 htaccess 重定向时,压缩 (gzip) 不起作用

如何解决应用 htaccess 重定向时,压缩 (gzip) 不起作用

我有一台运行 WHM/cPanel 的 Linux 网络服务器。

这在/public_html文件夹中上传一个名为compression.PHP页面 这是通过 http://www.example.com/compression.php

访问的

在 cPanel 中,在“优化网站”中,选择了“压缩所有内容”选项并且 .htaccess 文件确实有一个 mod_gzip 块 - 见下文:

<ifModule mod_gzip.c>
    mod_gzip_on Yes
    mod_gzip_dechunk Yes
    mod_gzip_item_include file .(html?|txt|css|js|PHP|pl)$
    mod_gzip_item_include handler ^cgi-script$
    mod_gzip_item_include mime ^text/.*
    mod_gzip_item_include mime ^application/x-javascript.*
    mod_gzip_item_exclude mime ^image/.*
    mod_gzip_item_exclude rspheader ^content-encoding:.*gzip.*
</ifModule>

使用 https://www.whatsmyip.org/http-compression-test/ 进行测试,我可以看到页面正在按预期进行压缩。

一个/public_html/public 文件夹,其中还有一个名为compression.PHP文件内容略有不同以区分它)。当我使用 http://www.example.com/public/compression.php 访问它时,页面也会被压缩。

但是,如果我想将所有流量重定向到 .htaccess 文件中的 /public_html/public 文件夹,我添加以下内容

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    # Rewrite to 'public' folder
    RewriteCond %{HTTP_HOST} ^dev43.360ss.com$
    RewriteCond %{REQUEST_URI} !public/
    RewriteRule (.*) public/$1 [L]
</IfModule>

/public 中的页面http://www.example.com/compression.php 网址上加载并显示正确的内容,但不再压缩。

根据 cPanel 支持的建议,我尝试在 htaccess 中将 mod_gzip 块置于 mod_rewrite 块之上。

因为它是在没有 htaccess 重定向的情况下进行压缩的,所以我们知道 gzip 已安装并正常工作。 而且我已经测试过,无论使用什么版本的 PHP,都会发生同样的情况(我已经测试了 7.1、7.2 和 7.3)。 我还使用 PHP 文件和图像文件进行了测试 - 没有区别。

有人有什么想法吗?

谢谢

解决方法

原来,这是 ModSecurity™ 配置中的“后端压缩”设置设置为禁用而不是启用!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。