1

我在 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">
4

2 回答 2

1

Files您可以在指令中指定路径而不仅仅是文件名。所以我想这同样适用于FilesMatch指令。这样,当与正则表达式匹配时,您可以从其子目录中排除带有路径的文件。

请注意,我尚未对此进行测试,但可能值得一试:

<Directory "D:\path\to\root">
    <FilesMatch "^[^\\]*index.html$">
        Header set Cache-Control "max-age=0, must-revalidate"
    </FilesMatch >
</Directory>

请注意,我也不确定\您必须转义哪个反斜杠 ( ) 而哪个不需要转义。MS-Windows 内部使用的这种奇怪的路径符号确实是个问题。不仅在处理正则表达式时:-)

于 2013-01-24T06:21:31.650 回答
0

这很好用:

<Location /index.html>
   Header set Cache-Control "max-age=0, must-revalidate"
</Location>
于 2013-01-25T03:59:38.380 回答