私のerror.logには以下が含まれます:
構成エラーの可能性があるため、要求が10の内部リダイレクトの制限を超えました。必要に応じて、「LimitInternalRecursion」を使用して制限を増やします。 「LogLevel debug」を使用して、バックトレースを取得します。
Apache構成ファイルのログレベルを置き換えました:
LogLevel debug
再起動後、「バックトレース」と呼ばれるものなしで同じエラーメッセージが表示されます。私が理解しているように、mod_rewrite regexによって生成されるリダイレクトの10行があるはずです。
インターネット全体を検索した後、ログレベルとmod_rewriteの説明をたくさん見つけましたが、ログレベルのデバッグを機能させる方法についてのWordは見つかりませんでした。
何か案は?
Mod_rewriteの問題をデバッグするには、RewriteLogLevelとRewriteLogを使用します。
RewriteLogLevel 3
RewriteLog "/usr/local/var/Apache/logs/rewrite.log"
編集:この答えは3歳以上であることに注意してください。 Apacheの新しいバージョンについては、sp00nによる回答をご覧ください。 Apacheの古いバージョンのユーザーにはこの回答を残してください。
新しいApacheバージョンではRewriteLog
およびRewriteLogLevel
が削除されており、Apacheを起動しようとすると実際にエラーをトリガーすることに注意してください(少なくともApache 2.4.2を使用したXAMPPインストールでは)。
AH00526:path/to/config/file.confのxx行で構文エラー:無効なコマンド 'RewriteLog'、サーバー構成に含まれていないモジュールによってスペルミスまたは定義された可能性があります `
代わりに、trace1
からtrace8
までのレベルで、一般的なLogLevel
ディレクティブを使用することになりました。 'debug'はログに書き換えメッセージを表示しませんでした。
例:LogLevel warn rewrite:trace3
公式ドキュメントについては、 こちらを参照 。
もちろん、これはまた、現在、書き換えログが一般的なエラーログファイルに書き込まれることを意味し、自分でそれらを整理する必要があります。
新しいバージョンではLogLevel rewrite:trace3
をhttpd.conf
に使用する必要があります http://httpd.Apache.org/docs/2.4/mod/mod_rewrite.html#logging