没有mod_gzip的gzip,也没有mod_deflate和pre gzipped文件

时间:2011-06-10 00:08:04

标签: php .htaccess gzip

我的托管公司不支持mod_gzip,也不支持mod_deflate。

我必须gzip .js和css文件

我已预压缩文件。

我使用Joomla,并且为文档添加脚本,每当用户接受编码时,我必须使用一个提供.js.gz文件的PHP文件(PHP joomla代码示例):

$document = &JFactory::getDocument();

    $document->addScript($jQueryPath);

我在下面添加了指令.htaccess;但是,浏览器没有解压缩.js.gz文件

# Add some gzip to the bunch
AddEncoding x-gzip .gz 
<FilesMatch \.js.gz$>
        ForceType text/javascript
        Header set Content-Encoding "gzip"
</FilesMatch>
<FilesMatch \.css.gz$>
        ForceType text/css
        Header set Content-Encoding "gzip"
</FilesMatch>

RewriteCond %{REQUEST_FILENAME} ^.+\.(js|css)$ [NC]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.+)$ $1.gz [L,QSA,NC,NS]

任何人都可以帮忙解决如何在描述的条件下进行gzip的问题吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

大多数php安装都带有Zlib扩展 让你操作gzip文件。

查看这些php手册页以完成您的要求:

http://www.php.net/manual/en/function.gzcompress.php
http://www.php.net/manual/en/function.gzdeflate.php
http://www.php.net/manual/en/function.gzencode.php

您可以使用$ _SERVER超全局来检查Accept Encoding Header:

if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'deflate'))
{
// DO STUFF HERE
}
elseif (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
{
// DO STUFF HERE
}