我在Windows上运行Apache httpd。我想让Apache使index.html不可缓存 - 但只主页index.html,没有其他index.html文件。这就是我到目前为止所做的:
<Directory "D:\path\to\root">
<FilesMatch "index.html$">
Header set Cache-Control "max-age=0, must-revalidate"
</FilesMatch>
</Directory>
它有效 - 但适用于所有 index.html文件。我怎样才能将其缩小到只有一个index.html?显然,我可以在目录中使用正则表达式,但我这不起作用:
<Directory ~ "D:\\path\\to\\root">
答案 0 :(得分:1)
您可以在Files
指令中指定路径而不仅仅是文件名。所以我想这同样适用于FilesMatch
指令。这样,您可以在与正则表达式匹配时排除从子目录中携带路径的文件。
请注意,我没有对此进行测试,但可能值得一试:
<Directory "D:\path\to\root">
<FilesMatch "^[^\\]*index.html$">
Header set Cache-Control "max-age=0, must-revalidate"
</FilesMatch >
</Directory>
请注意,我也不确定您必须逃避哪个反斜杠(\
)以及哪个不反斜。这种奇怪的路径符号MS-Windows内部使用确实是一个问题。不仅在处理正则表达式时: - )
答案 1 :(得分:0)
这很好用:
<Location /index.html>
Header set Cache-Control "max-age=0, must-revalidate"
</Location>