0

数か月間は問題なく機能する mod-rewrite ルールがありました。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

(これはサイト/フォルダーにあります)。

これにより、ユーザーは site/folder/something から site/folder/index.php?q=something にリダイレクトされ、URL がきれいに残ります。

さて、突然、誰も .htaccess ファイルや関連ページのコードに触れていないのに、動作しなくなりました。URL は以前と同じですが、ページのコンテンツは (site/folder/index.php?q=something) ではなく、site/index.php です。

これをデバッグするにはどうすればよいですか?リダイレクト ルールのフローをたどることができるツールは何ですか?

4

1 に答える 1

1

サーバーまたは仮想ホストの構成で、次の行を追加できます。

        RewriteLog /tmp/rewrite.log
        RewriteLogLevel 5

次に、/tmp/rewrite.log(または選択した場所に) 書き込まれた出力を見て、mod_rewrite がリアルタイムで何を行っているかを確認できます。出力が表示されない場合は、ルールがまったく適用されていません (オーバーライドが変更されたか、mod_rewrite がロードされていない可能性があります)。

于 2012-12-18T07:27:27.377 に答える