2011-06-10 71 views
2

我的託管公司不支持mod_gzip的,也不mod_deflate模塊。的gzip不mod_gzip的,也不mod_deflate模塊和預gzip壓縮文件

我必須gzip壓縮的.js和css文件

我已經預先壓縮的文件。

我使用的Joomla,和腳本添加到文檔中,我必須使用每當編碼由用戶(PHP的的Joomla代碼示例)接受了服務於.js.gz文件的PHP文件:

$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壓縮?

謝謝

+2

個人而言,我快捷整個情況,並找到一個更稱職的託管公司。 – 2011-06-10 00:34:19

+0

託管公司,除了經常預先計算的壓縮文件不會改變,並且不需要服務器再次完成相同的工作,它只是有意義的。各種緩存。 – hakre 2011-06-10 01:22:01

回答

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超全局檢查接受編碼頭:

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