web-dev-qa-db-ja.com

htaccessファイルはどういうわけかキャッシュされていますか?

ページ名の非常に単純な書き換えを行う.htaccessファイルがありました。これはファイルの内容です:

Options +FollowSymlinks
RewriteEngine on
RewriteRule setup setup.php [NC]

セットアップをsetup.phpに書き換えるのをやめたいのですが、どうすればよいですか?ファイルから行を削除してみました。ファイルを削除してApacheを再起動しようとしましたが、まだセットアップをsetup.phpに書き換えています。どうすれば停止できますか?私が作成した他の.htaccessファイルを完全に無視しているようで、エラーログには何も書き込まれていません。ファイルをどこかにキャッシュしていますか?どうすれば止められますか?

私はubuntuでApache2を使用しています。

20
Benubird

問題は、MultiViewsが有効になっていることです。 MultiViewsは、可能であれば、要求されたURLに拡張子を自動的に追加します。これは、RewriteRuleとは何の関係もありません。たまたまsetupsetup.phpに書き換えていたので、MultiViewsとルールは同じことをしていました。

-MultiViewsOptionsディレクティブに追加して、無効にします。

18
nitro2k01

リダイレクトがブラウザにキャッシュされるためにhtaccessファイルが更新されないという問題がある場合。 Google ChromeまたはSafariなどのWebkitブラウザを使用して、プライベートブラウジングセッションまたはシークレットウィンドウを開くことができます。

Htaccessファイルを更新するたびに、すべてのシークレットウィンドウ/タブを閉じてから、新しいウィンドウ/タブを開く必要があります。シークレットウィンドウは、現在のセッションを超えてキャッシュに書き込みを行わず、初期ロード時に既存のキャッシュを使用しません。これは、テスト時にキャッシュの問題を回避するための優れた方法であり、発生している問題がブラウザのキャッシュによって引き起こされているかどうかを確認するための優れた方法です。

よくわかりませんが、Firefox以降のバージョンのIEには同様の機能がある可能性があります。

22
Jake

1)チェックしてnginxが問題を引き起こしていないことを確認します-オフにしただけですが、使用したい場合は正しく設定する方法があると確信しています。 (私にとっては、MediaTempleの最新のDVサーバーではデフォルトでオンに設定されていました)。

2)これをhttpd.conf、vhost.conf、またはホームディレクトリのhtaccessファイルから食物連鎖のさらに上流にある他の構成ファイルに追加してみてください。

Header merge Cache-Control no-cache env=NO_CACHE
Header merge Cache-Control no-store env=NO_STORE
1
squarecandy