2016-06-17 1 views
0

静的なWebページがあり、使用可能なすべてのファイルのgzipバージョンを提供することで読み込みパフォーマンスを改善したいと考えています。ページがApacheサーバー上で実行されていますmod_gzip .htaccessファイル以外の設定は変更できません。 したがって、ビルドプロセス中にgzipファイルを作成し、着信要求を.gzファイルに書き換えたいとします。書き換え時にApacheのコンテンツタイプが変更されないようにします

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteBase/
    ReWriteCond %{HTTP:accept-encoding} gzip 
    ReWriteCond %{REQUEST_FILENAME} !.+\.gz$ 
    RewriteCond %{REQUEST_FILENAME}.gz -f 
    RewriteRule (.+) $1.gz [L] 
</IfModule> 

書き換えが完璧に動作しますが、unfotunatelyサーバーは、ブラウザのファイルをダウンロードし、それをレンダリングしない可能アプリケーション/ X-gzipのに対する応答ののContent-Typeを変更します。 Apacheのサーバーがコンテンツタイプを変更するのを防ぎ、gzをダウンロードする代わりにページをレンダリングする方法はありますか?

+0

どのファイルにgzバージョンがありますか? html、css、js? – slapyo

+0

はい、html、css、jsです。しかし、フォントファイル(eot、ttf、woff ...) – andipaetzold

答えて

0

これには、次の2つのバージョンのファイルが必要です。たとえば、

index.html 
index.html.gz 

styles.css 
styles.css.gz 

scripts.js 
scripts.js.gz 

このhtaccessは、gzバージョンをブラウザに送信する要求を書き換えますが、元のファイルのタイプも維持します。あなたは送信したいファイルの種類を強制しなければなりません。それ以外の場合はapplication/x-gzipが使用され、ブラウザはファイルをダウンロードします。

<IfModule mod_deflate.c> 
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json application/javascript application/vnd.ms-fontobject application/font-ttf application/font-woff application/font-otf image/svg+xml 
</IfModule> 

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{HTTP:Accept-Encoding} gzip 
    RewriteCond %{REQUEST_FILENAME}.gz -f 
    RewriteRule (.*\.(html|css|js|eot|ttf|woff|otf|svg))$ $1.gz [L] 
</IfModule> 

AddEncoding x-gzip .gz 

<FilesMatch .*\.html.gz> 
    ForceType text/html 
</FilesMatch> 

<FilesMatch .*\.css.gz> 
    ForceType text/css 
</FilesMatch> 

<FilesMatch .*\.js.gz> 
    ForceType application/javascript 
</FilesMatch> 

<FilesMatch .*\.eot.gz> 
    ForceType application/vnd.ms-fontobject 
</FilesMatch> 

<FilesMatch .*\.ttf.gz> 
    ForceType application/font-ttf 
</FilesMatch> 

<FilesMatch .*\.woff.gz> 
    ForceType application/font-woff 
</FilesMatch> 

<FilesMatch .*\.otf.gz> 
    ForceType application/font-otf 
</FilesMatch> 

<FilesMatch .*\.svg.gz> 
    ForceType image/svg+xml 
</FilesMatch> 
+0

私のために働いた - ありがとう! – andipaetzold

関連する問題