Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Apacheのrewritelogの出力方法(Apache2.2とApache2.4で違います)

RewriteCondRewriteRuleの条件をデバッグするときによく使うのですが、
その都度方法を調べてしまっているので備忘も兼ねて書いちゃいます。

Apache2.2Apache2.4でやり方が全然違くなってしまいました。
これからはほとんど2.4になると思うので、先に2.4の方法を記載します。

Apache2.4 での設定方法

設定方法

Apacheのconfに以下の記述を追加します。

LogLevel debug rewrite:trace8

軽く説明

Apache2.4からはRewriteLogという独立したログはなくなり、
coreモジュールのLoglevelディレクティブを使って指定する方法に変更されました。
出力ファイルは指定できず、他のログと一緒にerror_logに出るようになります。
レベルはtrace1 ~ trace8 までで、数値が大きくなるほど冗長になります。
膨大にログが出て重くなるので、デバッグ以外の目的で trace2 以上を使うのは止めた方がよいです。

公式ドキュメント

Apache2.2 での設定方法

設定方法

Apacheのconfに以下の記述を追加します。

RewriteLog "/tmp/httpd.rewrite.log"
RewriteLogLevel 9

軽く説明

RewriteLogLevel0~9まであり、ログの詳細レベルを指定します。
9が一番詳細で、0だと何も出力しません。

注意点(2.2と2.4共通)

  • 基本的にはVirtualHosts内に書くことが多いと思います。僕はVirtualHosts外に書いたことがありません。
  • .htaccessでは書けません。書いちゃうとInternal Server Errorになります。
  • Logが肥大化しすぎてサーバーのパフォーマンス低下を引き起こすため、デバックが終わったら設定を戻しましょう。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
5
Help us understand the problem. What are the problem?