URLを書き換えてくれるmod_rewriteは便利ですが、たまに「あれー?」ってなるときあります。
その時にログを参照してDebugするのがスマートです。
ログの出力方法をまとめました。
- 書き方
- 以下のような記述をApacheの設定ファイル内に記述します。
12RewriteLog /tmp/rewrite.logRewriteLogLevel 9
- 以下のような記述をApacheの設定ファイル内に記述します。
- 書く場所
- ちなみに、この「Apacheの設定ファイル内に」というのが大事で、うっかり.htaccess内に書いてしまうとハマることになります(Internal Server Errorになる)。
- RewriteLogLevel指示子は、トップレベルと<VirtualHost>ブロックにしか書けません。
- ログレベル
- RewriteLogLevelは0から9まであり、ログの詳細レベルを指定します。
以下の level を指定でき、順に重要度が下がっていきます。レベル 説明 emerg 緊急 – システムが利用できない alert 直ちに対処が必要 crit 致命的な状態 error エラー warn 警告 notice 普通だが、重要な情報 info 追加情報 debug デバッグメッセージ
- RewriteLogLevelは0から9まであり、ログの詳細レベルを指定します。
- デバッグが終わったら戻します
- *Apache Module mod_rewrite
- *apache2.4では、RewriteLog と RewriteLogLevel はなくなったもよう。公式のドキュメントを見る。