HTMLの有効期限を過去に設定することで、HTMLがキャッシュされないようにしようとしていると仮定しています。残念ながら、Expiresディレクティブは将来の日付にしか使用できないため、使用することはできません。ヘッダーコマンドを使用して、HTMLファイルのキャッシュ方法を制御できます。
<FilesMatch "\.(html|htm)$">
FileETag None
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Thu, 01 Jan 1970 00:00:00 GMT"
</FilesMatch>
mod_headers
モジュールは、このメソッドを使用するようにApacheにインストールする必要があります。
編集:また、PHPを使用している場合は、PHPのheader
機能を使用してこれらのヘッダーを設定できます。
header("Cache-Control: max-age=0, no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Expires: Thu, 01 Jan 1970 00:00:00 GMT");
thaatは私がやろうとしているものです。 HTMLファイルがPHPから提供されている場合はどうなりますか?代わりにFilesMatch "\ .php $"を試しますか? URLにクエリ文字列がある場合はどうなりますか?その$記号は不一致を引き起こします。提案? – StackOverflowNewbie
はい、 ''を変更することで、PHPファイルをターゲットにすることができます。しかし、PHPの 'header'関数を使うこともできます。私はこれを示すために私の答えを更新しました。 –
私は純粋な.htaccessソリューションを探しています。クエリ文字列の問題はどうですか? FilesMatchの正規表現は、たとえば 'www.domain.com/index.html?q = hello'と一致しません。クエリ文字列を処理するにはどうすればよいですか? $記号を削除すると、クエリ文字列に潜在的に '.php'がある可能性があるので危険です。 – StackOverflowNewbie