2017-01-13 6 views
2

私はのウェブサイトをaws s3にアップロードします。さて、私はページの速度をチェックしているとき、それは速度を向上させるためにgzipの圧縮を有効にすると言っている。私は.htaccessファイルをsrcフォルダに以下のコードで追加しました。しかし、私はそれの効果を見ることはできません。awsでgzipを有効にする

<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 
    # (for Apache versions below 2.3.7, you don't need to enable `mod_filter` 
    # and can remove the `<IfModule mod_filter.c>` and `</IfModule>` lines 
    # as `AddOutputFilterByType` is still in the core directives). 
    <IfModule mod_filter.c> 
     AddOutputFilterByType DEFLATE application/atom+xml \ 
             application/javascript \ 
             application/json \ 
             application/ld+json \ 
             application/rss+xml \ 
             application/vnd.ms-fontobject \ 
             application/x-font-ttf \ 
             application/x-web-app-manifest+json \ 
             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> 
<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/javascript.* 
    mod_gzip_item_include mime ^application/x-javascript.* 
    mod_gzip_item_exclude mime ^image/.* 
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 
<ifModule mod_expires.c> 
    ExpiresActive On 
    ExpiresDefault "access plus 1 seconds" 
    ExpiresByType text/html "access plus 1 seconds" 
    ExpiresByType image/gif "access plus 2592000 seconds" 
    ExpiresByType image/jpeg "access plus 2592000 seconds" 
    ExpiresByType image/png "access plus 2592000 seconds" 
    ExpiresByType text/css "access plus 604800 seconds" 
    ExpiresByType text/javascript "access plus 216000 seconds" 
    ExpiresByType application/javascript "access plus 216000 seconds" 
    ExpiresByType application/x-javascript "access plus 216000 seconds" 
</ifModule> 
<ifModule mod_headers.c> 
    <filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$"> 
    Header set Cache-Control "max-age=2592000, public" 
    </filesMatch> 
    <filesMatch "\\.(css)$"> 
    Header set Cache-Control "max-age=604800, public" 
    </filesMatch> 
    <filesMatch "\\.(js)$"> 
    Header set Cache-Control "max-age=216000, private" 
    </filesMatch> 
    <filesMatch "\\.(xml|txt)$"> 
    Header set Cache-Control "max-age=216000, public, must-revalidate" 
    </filesMatch> 
    <filesMatch "\\.(html|htm|php)$"> 
    Header set Cache-Control "max-age=1, private, must-revalidate" 
    </filesMatch> 
</ifModule> 
<ifModule mod_headers.c> 
    Header unset ETag 
</ifModule> 
FileETag None 
<ifModule mod_headers.c> 
    Header unset Last-Modified 
</ifModule> 

私はそれを達成するために手伝ってください。

答えて

1

S3は.htaccessディレクティブをサポートしていません。

使用できるオプションは2つあります。

オプション1

gzipを使用して、あなたのコンテンツを自分で圧縮した後、あなたがS3でオブジェクトをアップロードする際にヘッダContent-Encoding: gzipを設定します。アップロードされたオブジェクトキーに拡張子.gzを使用しないでください。

オプション2.

あなたのサイトにCloudFront + S3を使用してください。 CloudFront構成のキャッシュ動作でCompress Objects Automaticallyを有効にします。

関連する問題