在我们(已更新的?已迁移)共享托管服务器上GZipping文件时出现一个奇怪的问题。
检查包含文件夹/_inc/
中的这两个相同的文件,完全相同的内容(php代码),目的是收集,缩小和生成来自各种源cdd文件的单个Gzip压缩文件。现在,以php结尾的文件似乎得到了很好的GZip,但是以扩展名css和js结尾的文件还没有得到GZipped ......
/_inc/all.css(24 kbyte,扩展不会让自己Gzipped)
/_inc/allcss.php(5千字节!扩展让自己Gzipped)
将扩展名从css更改为php会使文件压缩,但是浏览器仍然更喜欢使用css扩展来获得最佳缓存...
问:为什么只有以php结尾的文件是Gzip ,而以css和js扩展名结尾的php文件不是Gzip的?如何为css和js扩展实现Gzipping?如何将主.htacces或php.ini设置为Gzip所有.php,.css,.js文件?
/.htaccess (用于压缩的root .htaccess文件部分)
## interpreted extensions as php
AddType application/x-httpd-php .php
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
#AddType text/css css
#AddType text/javascript js
## compress speficic filetypes BUTTTT doesn't work anymore since server upgrade!
## with or without the code below the result is the same!
<IfModule mod_deflate.c>
<FilesMatch "\.(js|css|eot|ttf|svg|xml|php|txt)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>
/ _ inc / .htaccess (.htacces文件使css和js文件解释为php文件)
AddType application/x-httpd-php-cgi .js .css
Action application/x-httpd-php-cgi /cgi-php/php-cgi
php.ini (来自运行PHP 5.3.28的Apache服务器)
session.gc_maxlifetime = 1440
session.name = PHPSESSID
session.save_handler = files
session.serialize_handler = php
zlib.output_compression = On
zlib.output_handler = ob_gzhandler
allow_call_time_pass_reference =
implicit_flush = Off