Apache的RewriteLog输出方法(在Apache2.2和Apache2.4中有所不同)

经常在调试RewriteCond和RewriteRule的条件时使用,但每次都需要查找方法,所以为了备忘起见,我将写下来。

Apache 2.2和Apache 2.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

请简要说明。

RewriteLogLevel有0到9的级别,用于指定日志的详细程度。
级别9最详细,级别0表示不输出任何内容。

请注意以下几点(适用于2.2和2.4):

    • 基本的にはVirtualHosts内に書くことが多いと思います。僕はVirtualHosts外に書いたことがありません。

.htaccessでは書けません。書いちゃうとInternal Server Errorになります。
Logが肥大化しすぎてサーバーのパフォーマンス低下を引き起こすため、デバックが終わったら設定を戻しましょう。

bannerAds