web-dev-qa-db-ja.com

htaccessを削除しても、サーバーが古い書き換えルールを記憶している

UbuntuとLAMPを使用して開発サーバーをセットアップしましたが、何らかの理由で.htaccessがおかしな動作をしています...

そこには一連のルールがあるサイトがあり、コメントアウトしても機能します。ファイルの名前を.htaccesssに変更しても、引き続き機能します。ファイル内のすべてを削除しても機能し、変更を加えるたびにApacheを再起動します...

Apacheを再インストールしてリライトモジュールを再インストールしようとしましたが、それでも機能しません...

私が追加した新しいルールはまったく影響がないように見えるので、他の場所からルールを読み取っているようです。

.htaccessファイルに/を入れて構文エラーを発生させると、500サーバーエラーが発生します。

ルールがキャッシュされている場所はありますか?私はこれまでこの問題を経験したことがありません!

[〜#〜] edit [〜#〜]Options -Multiviewsファイルに.htaccessを追加することで、この問題を解決しました

3
Adam

キャッシュがサーバー側ではなくクライアントで発生するかどうかを確認する価値があるかもしれません。 Firefoxは、301(PERMANLTYが移動)をキャッシュします-数日間リダイレクトされます。 302(一時)リダイレクトを使用します。 「古いターゲット」を修正するには、Firefoxがキャッシュを使用しないように別のドメイン(wwwなしなど)などにリダイレクトするhtmlページを設定できます。

ルールがキャッシュされている場所はありますか?私はこれまでこの問題を経験したことがありません!

(通常)サーバー側ではなく、クライアント/ブラウザー側。ブラウザもキャッシュクリーンアップしてみてください


編集1

提案:docrootから.htaccessファイルを移動します。まだアクティブな書き換えルールがある場合、それらはどこかにある必要があります:docrootまたは<virtualserver>-- configのいずれかです。 docrootのhtaccessを無効にするには、server-configに以下を追加します。

<virtualHost>
    ...
    DocumentRoot /some/path
    ...

    <Directory /some/path>

        AllowOverride None

    </Directory>

</VirtualHost>  
  • apacheを再起動します

Server-ConfigにRewriteRuleがなく、上記のスニペットでまだ書き換えが行われていると確信している場合は、魚の匂いがします

これはすべての人に役立つわけではありませんが、私の場合、サイトの親ディレクトリに.htaccessの古いコピーがあり、実際にはApache htdocsフォルダから数ディレクトリ上にあり、Apacheがディレクトリツリーをトラバースしているようです。これと私の.htaccessを私のhtdocsフォルダにマージする必要があります。この誤ったファイルを発見して削除すると、死なないリダイレクトがリダイレクトを停止しました。

0
user2378432

追加 Options -Multiviews の中に .htaccessファイル。

Adam が回答しましたが、表示されなかったので、ここにあります。

0
emotality