2011-07-17 17 views
27

一般的なWebサイトの圧縮、ブラウザキャッシング、プロキシキャッシングなどを処理する最適化された.htaccess設定をユーザーに提供できますか?htaccessによるキャッシングとgzip圧縮

私の訪問者以外にも、私はGoogle PageSpeedを幸せにしようとしています。 .htaccessを使ってキャッシュとgzip圧縮を使用したいのですが、コードを手伝ってください!

私は私が2日

ためhtmlファイルをキャッシュしたいと私は私のhtml,txt,css,js,phpファイルを圧縮したい2日

ためxml,txtファイルをキャッシュしたい長時間

icon,pdf,flv,jpg,png,gif,js,css,swfファイルをキャッシュしたいですファイルサイズが大きいためです。

.htaccessを使用して画像をgzipする方法はありますか?

+1

GIF、JPEG、PNGはすでに圧縮形式であるため、 'gzip'で画像を圧縮することはあまり重要ではありません。それらを圧縮することは、帯域幅を増やすことなく、サーバー上のCPUリソースの損失に過ぎません。 –

+0

@hakre:この男以外は私に正解がありません! –

+1

あなたは@Hamid Seyyediですか?もしあなたがいれば、このユーザーアカウントと[あなたの他のユーザー](http://stackoverflow.com/users/784971/hamid-seyyedi)を単一のアカウントにマージする必要があります。 2つの別々の口座を持つことはできません。 –

答えて

44
# 480 weeks 
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
Header set Cache-Control "max-age=290304000, public" 
</FilesMatch> 

# 2 DAYS 
<FilesMatch "\.(xml|txt)$"> 
Header set Cache-Control "max-age=172800, public, must-revalidate" 
</FilesMatch> 

# 2 HOURS 
<FilesMatch "\.(html|htm)$"> 
Header set Cache-Control "max-age=7200, must-revalidate" 
</FilesMatch> 

<ifModule mod_gzip.c> 
    mod_gzip_on Yes 
    mod_gzip_dechunk Yes 
    mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ 
    mod_gzip_item_include handler ^cgi-script$ 
    mod_gzip_item_include mime ^text/.* 
    mod_gzip_item_include mime ^application/x-javascript.* 
    mod_gzip_item_exclude mime ^image/.* 
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 
+0

@hakre:この男以外は私に正解がありません!あなたの目を開いてください! –

+2

の部分が私のために機能しませんでした。自分のサイトで試してみたときにエラー500が発生しました! ただし、以下の回答のAddOutputFilterByTypeメソッドは完全に機能します。 これら2つの方法の違いは何ですか? – maxxon15

+1

Apache 1.3は[mod_gzip](http://sourceforge.net/projects/mod-gzip/)を使用し、Apache 2.xは[mod_deflate](http://httpd.apache.org/docs/2.0/mod/mod_deflate .html)。だから、あなたのApacheのバージョンを確認してください、その重要な! – Andron

16

これを試してみてください:

<IfModule mod_deflate.c> 
    #The following line is enough for .js and .css 
    AddOutputFilter DEFLATE js css 
    AddOutputFilterByType DEFLATE text/plain text/xml application/xhtml+xml text/css application/xml application/rss+xml application/atom_xml application/x-javascript application/x-httpd-php application/x-httpd-fastphp text/html 

    #The following lines are to avoid bugs with some browsers 
    BrowserMatch ^Mozilla/4 gzip-only-text/html 
    BrowserMatch ^Mozilla/4\.0[678] no-gzip 
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
</IfModule> 

# BEGIN EXPIRES 
<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresDefault "access plus 10 days" 
    ExpiresByType text/css "access plus 1 week" 
    ExpiresByType text/plain "access plus 1 month" 
    ExpiresByType image/gif "access plus 1 month" 
    ExpiresByType image/png "access plus 1 month" 
    ExpiresByType image/jpeg "access plus 1 month" 
    ExpiresByType application/x-javascript "access plus 1 month" 
    ExpiresByType application/javascript "access plus 1 week" 
    ExpiresByType application/x-icon "access plus 1 year" 
</IfModule> 
# END EXPIRES 

<IfModule mod_headers.c> 
    <FilesMatch "\.(js|css|xml|gz)$"> 
     Header append Vary Accept-Encoding 
    </FilesMatch> 
    <FilesMatch "\.(ico|jpe?g|png|gif|swf)$"> 
     Header set Cache-Control "public" 
    </FilesMatch> 
    <FilesMatch "\.(css)$"> 
     Header set Cache-Control "public" 
    </FilesMatch> 
    <FilesMatch "\.(js)$"> 
     Header set Cache-Control "private" 
    </FilesMatch> 
    <FilesMatch "\.(x?html?|php)$"> 
     Header set Cache-Control "private, must-revalidate" 
    </FilesMatch> 
</IfModule> 
+2

Apache 2.4では、両方のモジュールが 'deflating'を使うために有効になっていなければなりません:mod_deflate.soとmod_filter.so – Andron

2

あなたがように、コードを使用することができます - あなたはそれが最小10ポイント増加します私を信頼し、あなたの.htaccessファイルに以下のルールを使用する必要があります

<Files *> 
    #Compress 

    SetOutputFilter GZIP 

    #Caching 

    Header set Cache-Control "max-age=3600, public" 


</Files> 
1

これを既に使用していない場合は

 

mod_gzip_on Yes 
mod_gzip_dechunk Yes 
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ 
mod_gzip_item_include handler ^cgi-script$ 
mod_gzip_item_include mime ^text/.* 
mod_gzip_item_include mime ^application/x-javascript.* 
mod_gzip_item_exclude mime ^image/.* 
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 


AddOutputFilterByType DEFLATE application/javascript 
AddOutputFilterByType DEFLATE application/rss+xml 
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject 
AddOutputFilterByType DEFLATE application/x-font 
AddOutputFilterByType DEFLATE application/x-font-opentype 
AddOutputFilterByType DEFLATE application/x-font-otf 
AddOutputFilterByType DEFLATE application/x-font-truetype 
AddOutputFilterByType DEFLATE application/x-font-ttf 
AddOutputFilterByType DEFLATE application/x-javascript 
AddOutputFilterByType DEFLATE application/xhtml+xml 
AddOutputFilterByType DEFLATE application/xml 
AddOutputFilterByType DEFLATE font/opentype 
AddOutputFilterByType DEFLATE font/otf 
AddOutputFilterByType DEFLATE font/ttf 
AddOutputFilterByType DEFLATE image/svg+xml 
AddOutputFilterByType DEFLATE image/x-icon 
AddOutputFilterByType DEFLATE text/css 
AddOutputFilterByType DEFLATE text/html 
AddOutputFilterByType DEFLATE text/javascript 
AddOutputFilterByType DEFLATE text/plain 
AddOutputFilterByType DEFLATE text/xml 
BrowserMatch ^Mozilla/4 gzip-only-text/html 
BrowserMatch ^Mozilla/4\.0[678] no-gzip 
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
Header append Vary User-Agent 


ExpiresActive On 
ExpiresByType image/jpg "access 1 year" 
ExpiresByType image/jpeg "access 1 year" 
ExpiresByType image/gif "access 1 year" 
ExpiresByType image/png "access 1 year" 
ExpiresByType text/css "access 1 month" 
ExpiresByType text/html "access 1 month" 
ExpiresByType application/pdf "access 1 month" 
ExpiresByType text/x-javascript "access 1 month" 
ExpiresByType application/x-shockwave-flash "access 1 month" 
ExpiresByType image/x-icon "access 1 year" 
ExpiresDefault "access 1 month" 

1

.htaccessファイルを経由してこれを読んで、ほとんどの人にとって

を圧縮を有効にし、圧縮は彼らのウェブホスト/サーバー上の.htaccessというファイルにいくつかのコードを追加することで有効になっています。これは、あなたのウェブホスト上のファイルマネージャ(またはあなたがファイルを追加またはアップロードするために行く)に行くことを意味します。

.htaccessファイルは、サイトの多くの重要な機能を制御します。 .htaccessファイルに精通していない場合は、.htaccessを使って作業していることを読んで、変更する前にどうやって知っているかを知ってください。その後、

次のコードは、あなたの.htaccessファイルに追加する必要があります...

<ifModule mod_gzip.c> 
mod_gzip_on Yes 
mod_gzip_dechunk Yes 
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ 
mod_gzip_item_include handler ^cgi-script$ 
mod_gzip_item_include mime ^text/.* 
mod_gzip_item_include mime ^application/x-javascript.* 
mod_gzip_item_exclude mime ^image/.* 
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 

保存.htaccessファイルやWebページを更新します。

Gzip compression toolを使用して圧縮が機能しているかどうかを確認してください。

関連する問題