Cache-Control HTTP 応答ヘッダーが Apache httpd では機能しません。

Cache-Control HTTP 応答ヘッダーが Apache httpd では機能しません。

1週間ApacheでJSファイルのCache-Controlを設定しましたが、ブラウザを確認するとCache-Controlにキャッシュが表示されません。どこで構成がありませんか?

以下はApacheでの設定です。

<ifModule mod_headers.c>

  <filesMatch "\.(html|htm|png|js|css)$">
   Header set Cache-Control "max-age=604800, public"
  </filesMatch>

</ifModule>

ブラウザからヘッダーをリクエスト

    Request URL:http://test.com/Script.js?buildInfo=1.1.200
    Request Method:GET
    Status Code:200 OK
    Request Headersview source
    Accept:*/*
    Accept-Encoding:gzip,deflate,sdch
    Accept-Language:en-US,en;q=0.8
    **Cache-Control:no-cache**
    Connection:keep-alive
    Host:test.com
    Pragma:no-cache
    Referer:http://test.com/home.jsp
    User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like      
    Gecko) Chrome/37.0.2062.120 Safari/537.36
    Query String Parametersview sourceview URL encoded
    buildInfo:1.1.200

    Response Headersview source
    Cache-Control:max-age=2592000
    Connection:keep-alive
    Content-Encoding:gzip
    Content-Type:text/javascript
    Date:Sun, 12 Oct 2014 16:17:46 GMT
    Expires:Tue, 11 Nov 2014 16:17:46 GMT
    Last-Modified:Tue, 07 Oct 2014 13:28:08 GMT
    Server:Apache
    Transfer-Encoding:chunked
    Vary:Accept-Encoding

ベストアンサー1

Debian を想定してヘッダモジュールを有効にする必要があります。

sudo a2enmod headers

その後、変更を適用するにはApacheを再ロードまたは再起動する必要があります。

sudo service apache2 reload

これがうまくいかない場合は、設定のさまざまな部分がWebルートで提供されている.htaccessなど、Cache-Controlディレクティブをオーバーライドすることもできます。

また、Apacheがサーバー構成に大文字を受け入れるかどうかはわかりません。おそらく大文字Iを使用する必要があります。 Apacheが大文字を認識しない場合、再起動時にエラーが表示されます。

おすすめ記事