1. ホーム
  2. .htaccess

[解決済み] .htaccessでVary.Accept-Encodingヘッダーを指定する方法 .htaccessでAccept-Encodingヘッダを指定する方法

2023-06-25 06:18:04

質問

Google PageSpeedは私が"Vary.Accept-Encodingヘッダーを指定する必要があると言います。Accept-Encoding header" for JS and CSS. 私は.htaccessでこれを行うにはどうすればよいですか?

どのように解決するのですか?

cssファイルやjsファイルのgzip圧縮を有効にすることで、クライアントがgzipエンコードされたコンテンツとプレーンなコンテンツの両方を受信できるようになるということでしょう。

apache2でのやり方です。

<IfModule mod_deflate.c>
    #The following line is enough for .js and .css
    AddOutputFilter DEFLATE js css

    #The following line also enables compression by file content type, for the following list of Content-Type:s
    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml

    #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>

そして、ここでは Vary Accept-Encoding ヘッダを追加します。 [src]

<IfModule mod_headers.c>
  <FilesMatch "\.(js|css|xml|gz)$">
    Header append Vary: Accept-Encoding
  </FilesMatch>
</IfModule>

Vary: ヘッダは、この url に対して提供されるコンテンツがあるリクエストヘッダの値によって変わることを伝えます。ここでは、以下のようなクライアントのために異なるコンテンツを提供することを述べています。 Accept-Encoding: gzip, deflate (リクエストヘッダ) を送信したクライアントには、このヘッダを送信しなかったクライアントに提供されるコンテンツとは異なるコンテンツを提供する、ということです。これの主な利点は、AFAIK では、中間キャッシュプロキシに、このような変更のために同じ url の 2 つの異なるバージョンを持つ必要があることを知らせることです。