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

GZIP仅在指定完整文件路径时压缩文件-不会压缩根目录

如何解决GZIP仅在指定完整文件路径时压缩文件-不会压缩根目录

如果我在.htaccess文件中包含以下内容,则GZIP仅在指定文件的完整路径时才会压缩文件

RewriteRule ^ index.PHP [L]

但是上述重写对于使我的CMS正常运行是必需的。

例如:

https://karenkingston.co.uk未被压缩,但是https://karenkingston.co.uk/index.php被压缩,实际上https://karenkingston.co.uk/themes/coach/js/jquery.scripts.js也被压缩。

PHP 7.2,但是更改版本无济于事。从.htaccess和CPanel启用GZIP也无济于事。

这是完整的.htaccess

Options -indexes

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=302,L,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.PHP [L]

AddType application/vnd.ms-fontobject .eot 
AddType application/x-font-ttf .ttf
AddType application/x-font-opentype .otf
AddType application/x-font-woff .woff
AddType application/x-font-woff2 .woff2
AddType image/svg+xml .svg

ExpiresActive on
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresByType application/x-font-ttf "access plus 1 year"
ExpiresByType application/x-font-opentype "access plus 1 year"
ExpiresByType application/x-font-woff "access plus 1 year"
ExpiresByType application/x-font-woff2 "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 1 month"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/x-javascript "access plus 1 year"
ExpiresByType application/pdf "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 1 month"

ErrorDocument 404 /

Redirect 301 /home https://karenkingston.co.uk
Redirect 301 /search https://karenkingston.co.uk

有什么想法吗?

解决方法

上面的代码无法使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>
,

在您的.htaccess文件中执行此操作

# compress text,html,javascript,css,xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xmlin
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
# Or,compress certain file types by extension:
<files *.html>
SetOutputFilter DEFLATE
</files>

然后在您的PHP中

<?php
   if (substr_count($_SERVER[‘HTTP_ACCEPT_ENCODING’],‘gzip’))
   ob_start(“ob_gzhandler”);
   else ob_start();
?>

将上述php代码写在始终处于活动状态的文件中,例如您的配置文件或index.php文件中。

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