如何解决应用 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 举报,一经查实,本站将立刻删除。