############################
# 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
指令替换为:
<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
再次......为什么?