簡體   English   中英

應用 htaccess 重定向時,壓縮 (gzip) 不起作用

[英]Compression (gzip) is not working when an htaccess redirect is applied

我有一個運行 WHM/cPanel 的 Linux web 服務器。

這在 /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 URL 上並顯示正確的內容,但它沒有被壓縮。

正如 cPanel 支持所建議的那樣,我嘗試在 htaccess 中將 mod_gzip 塊置於 mod_rewrite 塊之上。

因為它是在沒有 htaccess 重定向的情況下進行壓縮的,所以我們知道 gzip 已安裝並正常工作。 而且我已經測試過,無論使用什么版本的 PHP(我已經測試過 7.1、7.2 和 7.3),都會發生同樣的情況。 我還使用 php 文件和圖像文件進行了測試 - 沒有區別。

有沒有人有任何想法?

謝謝

原來,這是 ModSecurity™ 配置中的“后端壓縮”設置設置為禁用而不是啟用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM