############################
# FILES - CACHING: CONTROL #
############################
Header set Cache-Control "max-age=2592000, public"
<FilesMatch "\.(?:bmp|css|cur|gif|ico|jp(?:eg?|g)|js|png|svgz?|tiff?|webp)$">
Header set Cache-Control "max-age=31536000, public"
</FilesMatch>
<FilesMatch "\.(?:html?|json|php|xml)$">
Header set Cache-Control "max-age=0, must-revalidate, no-cache, no-store, post-check=0, pre-check=0, private"
</FilesMatch>
<FilesMatch "\.(?:atom|rdf|rss)$">
Header set Cache-Control "max-age=3600, public"
</FilesMatch>
Header merge Cache-Control "no-transform"
これは、ヘッダーhtacces
を処理する私のスニペットです。Cache-Control
デフォルトでは、すべてのファイルに対して に設定されていmax-age=2592000, public
ます。一番下に、私は常にno-transform
ディレクティブを追加しようとしていますが、うまくいきません。それは...まあ、何もしません。no-transform
ディレクティブは設定されていません。に置き換えmerge
てみましたがappend
、何も変わりません。
さて、気になったのがこれ。FilesMatch
3 番目のディレクティブを次のように置き換えると:
<FilesMatch "\.(?:atom|rdf|rss)$">
Header set Cache-Control "max-age=3600, public"
Header merge Cache-Control "no-transform"
</FilesMatch>
できます。私のサイトのすべてのフィード ファイルには、no-transform
ディレクティブがあります。最初のスニペットの最後の行を次のように変更すると:
<FilesMatch "^.+$">
Header merge Cache-Control "no-transform"
</FilesMatch>
まあ...すべてのファイルで機能します。ただ... なぜ?!
また、ヘッダーに関する別の非常に奇妙な動作にも気付きました。接続にキープアライブを強制したいとしましょう。これを htaccess ファイル内のどこかに挿入します。
Header merge Connection "Keep-Alive"
そして、これは私の応答ヘッダーで得られるものです:
Connection: Keep-Alive, Keep-Alive
再び... なぜ?!