Apache httpdサーバーで使用する mod-rewrite は、非常に高機能でコンテンツの幅を広げる機能ですが、その機能の多さから設定が難しく、エラーになることも多くあります。
今回は、この mod-rewrite の動作確認に必要な、ログの出力方法とデバッグを助けるツールを紹介します。
mod-rewrite のログ出力
mod-rewrite の動作ログを出力するには、以下の設定を httpd.conf などに追加します。
Apache httpd 2.4系
Apache httpd 2.4系では、rewrite:trace[1~8] の記述を使用します。
LogLevel debug rewrite:trace2
一番多くの情報を出力するのは rewrite:trace8 ですが情報が多くなりすぎるため、rewrite:trace2 くらいからはじめて、必要に応じて数字を大きくするのがデバッグ効率が上がります。
mod-rewriteのログは Apache httpd のエラーログ(error_log)に出力されます。
Apache httpd 2.2系まで
Apache httpd 2.2系までは、RewriteLog と RewriteLogLevel という記述を使用します。
RewriteLog /var/log/httpd/rewrite.log RewriteLogLevel 9
RewriteLogLevel は、1から9まで設定でき、9が一番多くの情報を出力します。
これも、前述の rewrite:traceX 同様、情報が多くなりすぎるので、最初は小さい数字から始め、デバッグの内容に合わせて大きくするのがオススメです。
ログのサイズと負荷
mod-Rewrite のログを有効にすると、多くのログを出力します。
ストレージを圧迫し、サーバーの負荷も高くなりますので、必要なときのみ mod-rewrite のログを有効にするようにします。
mod-rewrite (.htaccess) のテストツール
.htaccess で記述した mod-rewrite が正しく機能しているかを確認するツール(サイト)があります。
このツールを使用すると、mod-rewriteの構文が正しいかなどの試験ができます。