我的托管公司不支持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吗?
谢谢你,
大多数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
}