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 ファイルで動作します。これを 1 つの 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 に答える