2016-06-21 19 views
1

.htaccessファイルに期限切れヘッダーを追加しましたが、実際には動作していません。ブラウザでExpiresヘッダーが無視されています

FirefoxとChromeの両方で結果を確認すると(F12を押し、ネットワークオプションを選択してF5を押してページをリロードする)、ファイルに追加したルールが無視されていることがわかりました。

これらはboilerplateからコピーされたルール、以下のとおりです。

# ---------------------------------------------------------------------- 
# | ETags                | 
# ---------------------------------------------------------------------- 

# Remove `ETags` as resources are sent with far-future expires headers. 
# 
# https://developer.yahoo.com/performance/rules.html#etags 
# https://tools.ietf.org/html/rfc7232#section-2.3 

# `FileETag None` doesn't work in all cases. 
<IfModule mod_headers.c> 
    Header unset ETag 
</IfModule> 

FileETag None 

# ---------------------------------------------------------------------- 
# | Expires headers             | 
# ---------------------------------------------------------------------- 

# Serve resources with far-future expires headers. 
# 
# (!) If you don't control versioning with filename-based 
# cache busting, you should consider lowering the cache times 
# to something like one week. 
# 
# https://httpd.apache.org/docs/current/mod/mod_expires.html 

<IfModule mod_expires.c> 

    ExpiresActive on 
    ExpiresDefault          "access plus 1 month" 

    # CSS 

    ExpiresByType text/css        "access plus 1 year" 


    # Data interchange 

    ExpiresByType application/atom+xml     "access plus 1 hour" 
    ExpiresByType application/rdf+xml     "access plus 1 hour" 
    ExpiresByType application/rss+xml     "access plus 1 hour" 

    ExpiresByType application/json      "access plus 0 seconds" 
    ExpiresByType application/ld+json     "access plus 0 seconds" 
    ExpiresByType application/schema+json    "access plus 0 seconds" 
    ExpiresByType application/vnd.geo+json    "access plus 0 seconds" 
    ExpiresByType application/xml      "access plus 0 seconds" 
    ExpiresByType text/xml        "access plus 0 seconds" 


    # Favicon (cannot be renamed!) and cursor images 

    ExpiresByType image/vnd.microsoft.icon    "access plus 1 week" 
    ExpiresByType image/x-icon       "access plus 1 week" 

    # HTML 

    ExpiresByType text/html        "access plus 0 seconds" 


    # JavaScript 

    ExpiresByType application/javascript    "access plus 1 year" 
    ExpiresByType application/x-javascript    "access plus 1 year" 
    ExpiresByType text/javascript      "access plus 1 year" 


    # Manifest files 

    ExpiresByType application/manifest+json    "access plus 1 week" 
    ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds" 
    ExpiresByType text/cache-manifest     "access plus 0 seconds" 


    # Media files 

    ExpiresByType audio/ogg        "access plus 1 month" 
    ExpiresByType image/bmp        "access plus 1 month" 
    ExpiresByType image/gif        "access plus 1 year" 
    ExpiresByType image/jpeg       "access plus 1 year" 
    ExpiresByType image/png        "access plus 1 year" 
    ExpiresByType image/svg+xml       "access plus 1 month" 
    ExpiresByType image/webp       "access plus 1 month" 
    ExpiresByType video/mp4        "access plus 1 month" 
    ExpiresByType video/ogg        "access plus 1 month" 
    ExpiresByType video/webm       "access plus 1 month" 


    # Web fonts 

    # Embedded OpenType (EOT) 
    ExpiresByType application/vnd.ms-fontobject   "access plus 1 month" 
    ExpiresByType font/eot        "access plus 1 month" 

    # OpenType 
    ExpiresByType font/opentype       "access plus 1 month" 

    # TrueType 
    ExpiresByType application/x-font-ttf    "access plus 1 month" 

    # Web Open Font Format (WOFF) 1.0 
    ExpiresByType application/font-woff     "access plus 1 month" 
    ExpiresByType application/x-font-woff    "access plus 1 month" 
    ExpiresByType font/woff        "access plus 1 month" 

    # Web Open Font Format (WOFF) 2.0 
    ExpiresByType application/font-woff2    "access plus 1 month" 


    # Other 

    ExpiresByType text/x-cross-domain-policy   "access plus 1 week" 

</IfModule> 

そして、これらは、ブラウザに表示されているヘッダ。ご覧のように、スクリプトやスタイルシートなどのコンポーネントは1ヶ月後に期限切れになり、イメージは2ヶ月後に期限切れになります。

スタイルシートヘッダ:

Cache-Control: max-age=2592000, public 
Content-Encoding: gzip 
Content-Type: text/css 
Date: Tue, 21 Jun 2016 16:06:22 GMT 
Expires: Thu, 21 Jul 2016 16:06:22 GMT 

スクリプトヘッダ:

Cache-Control: max-age=2592000, public 
Content-Encoding: gzip 
Content-Type: application/javascript 
Date: Tue, 21 Jun 2016 16:06:22 GMT 
Expires: Thu, 21 Jul 2016 16:06:22 GMT 

画像ヘッダ:

Cache-Control: max-age=5184000, public 
Connection: keep-alive 
Date: Tue, 21 Jun 2016 16:10:13 GMT 
Expires: Sat, 20 Aug 2016 16:10:13 GMT 

SOMがありますこれについて私ができることは何ですか?

+1

"ファイルに追加したルールは無視されています。"この部分についてもう少し詳しいことを教えてください。どうやってそれに気づきましたか? –

+0

@FlorianLemaitreそうです、私はこれに関するいくつかの情報を追加しました。ありがとうございました。 –

答えて

0

最初に、ウェブサーバーが送信している正確なヘッダーについて、curl -IL "(URL)"で確認してください。

次に、Chromeで[キャッシュを無視]チェックボックスを選択しないようにしてください。

第3に、カール、Chrome、Firefoxからアクセスするとき、これらの要求についてアクセスログには何が表示されますか?

編集:実際の答えは、有効期限切れモジュールが実際に有効になっているかどうかを確認することでした。

+0

1.コマンドは次の情報を返しました。 最終更新日:2020年6月20日18:08:38 GMT。 キャッシュ制御:max-age = 0。 有効期限:Tue、2016年6月21日18:54:03 GMT 2.いいえ、私はそれを確認していません.. 3.私はcurl -vを使用しました。これは、これを返しました: 日時:2014年6月21日19時12分34秒GMT。 接続:キープアライブ。 最終更新日:2016年6月20日18:08:38 GMT。 キャッシュ制御:max-age = 0。 有効期限:火曜日、2016年6月21日19:12:34 GMT。 FirefoxのアドオンHTTPリクエストロガーには、サイトにアクセスしたときにダウンロードされたファイルのみが表示されていました。ログを表示するためのもっと便利な方法があるか教えてください。 –

+1

mod_expires.cモジュールがインストールされていないか、または有効になっていないと思います。ここで説明するように、mod_expires.cモジュールを有効にしていることを確認してください。http://www.absolutelytech.com/2010/08/02/howto-enable-or-disable-modules-in-apache/ –

+0

私のホスティングプロバイダはデフォルトでそれを有効にしている、彼らは確かにそれをチェックアウトすると述べた。だから、私は応答を待たなければならないと思う。その間、ありがとうございました。 –

関連する問題