0
############################
# 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、何も変わりません。

さて、気になったのがこれ。FilesMatch3 番目のディレクティブを次のように置き換えると:

<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

再び... なぜ?!

4

1 に答える 1