2013-07-19 60 views
0

我有最糟糕的時間讓我的服務器來壓縮我的文件。我使用ipage作爲我的主機,它運行着Apache II。當我查看谷歌開發人員工具中的「標題」區域時,它表示文件'accept-encoding':gzip,deflate,sdch',但pagespeed的見解仍然告訴我我的文件沒有被壓縮。這裏是我的htaccess文件代碼:GZIP壓縮不工作-htaccess文件可能是錯誤的?

這可能幫助過:http://www.uniconutrition.com/info.php

請幫幫忙!

Options +FollowSymlinks 
RewriteEngine on 
rewritecond %{http_host} ^uniconutrition.com [nc] 
rewriterule ^(.*)$ http://www.uniconutrition.com/$1 [r=301,nc] 

<IfModule mod_deflate.c> 
    <IfModule mod_setenvif.c> 
    <IfModule mod_headers.c> 
     SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding 
     RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding 
    </IfModule> 
    </IfModule> 

    # Compress all output labeled with one of the following MIME-types 
    <IfModule mod_filter.c> 
    AddOutputFilterByType DEFLATE application/atom+xml \ 
            application/javascript \ 
            application/json \ 
            application/rss+xml \ 
            application/vnd.ms-fontobject \ 
            application/x-font-ttf \ 
            application/xhtml+xml \ 
            application/xml \ 
            font/opentype \ 
            image/svg+xml \ 
            image/x-icon \ 
            text/css \ 
            text/html \ 
            text/plain \ 
            text/x-component \ 
            text/xml 
    </IfModule> 

</IfModule> 

回答

1

創建一個名爲info.php的小文件,輸入「phpinfo()」並檢查是否包含ZLib。

該位通常爲我工作:我不把所有的MIME類型

<IfModule mod_deflate.c> 
    <IfModule mod_php5.c> 
     php_flag zlib.output_compression 1 
     php_value zlib.output_compression_level 7 
    </IfModule> 

    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json 
    AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript 
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component 

    <FilesMatch "\.(ttf|otf|eot|svg)$" > 
     SetOutputFilter DEFLATE 
    </FilesMatch> 
</IfModule> 

的方法,另外,聲明包括在內。 :)我不確定將黑色斜線用作分隔符/間隔符。

+0

http://www.uniconutrition.com/info.php我看到一個zlib部分..它說啓用...生病請嘗試您的代碼:) –

+0

嗯它不工作:( –

+0

它工作@lancesmith?什麼結果是你越來越? – ReSpawN

1

檢查你是否沒有通過一個代理解壓縮內容的方式?

我只是檢查你提供捲曲的URL(無代理),並且顯示至少爲HTML這樣要求時,如gzip壓縮:

$ curl -I -H"Accept-Encoding: gzip" http://www.uniconutrition.com/info.php 
HTTP/1.1 200 OK 
Date: Fri, 19 Jul 2013 14:54:15 GMT 
Server: Apache/2 
X-Powered-By: PHP/5.2.17 
Content-Encoding: gzip 
Vary: Accept-Encoding 
Connection: close 
Content-Type: text/html 

然而,CSS和JS都沒有,例如http://www.uniconutrition.com/java/main.jshttp://www.uniconutrition.com/css/bootstrap.css

我懷疑你的網絡服務器使用的是mod_deflate而不是mod_filter。另外值得注意的是,在你的例子中,你使用JS的錯誤mimetype,應該是application/x-javascript而不是application/javascript

因此,你應該添加一個(簡單的)指令類似如下:

<IfModule mod_deflate.c> 
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript 
</IfModule> 

編輯:

有過再看看,你重寫規則不工作要麼;它規定所有的流量應該被重定向到www.uniconutrition.com,但是這並沒有發生,所以它認爲htaccess文件的其餘部分也被忽略了。檢查您的主機。

+0

我有這在htaccess重定向 - 這是造成問題嗎?選項+ FollowSymlinks RewriteEngine在 rewritecond%{http_host}^uniconutrition.com [nc] rewriterule ^(。*)$ http: //www.uniconutrition.com/$1 [r = 301,nc] –

+0

不太可能,因爲這是一個重定向規則 – BenLanc

+0

這是一個菜鳥問題 - 但我似乎無法在瀏覽器中打開我的任何文件,使用'http:/ /'之前...所以我認爲這意味着你是對的?我如何解決這個問題? –