2007-12-12 [長年日記]

[Q3] コマンドラインでログレベルを指定

先日、とある環境でOutlookの新しいバージョンを入れたら、MAPIのDLLのロードの所でQMAIL3の起動が止まってしまうという現象がありました。そのときは、直接qmail.xmlをいじってログレベルを上げたところ止まっているところが分かりました。しかし、起動しないとログレベルを指定できないのに、起動できない理由はログを見ないとわからない*1というのではあんまりです。そこで、コマンドラインオプションでログレベルを指定できるようにしました。

q3u.exe -l 4

のように0から4までのログレベルを-lを使って指定できます。

*1  ファイルをいじることを考えなければ

パスに%2Fを含むURLにアクセスすると404

Apacheのmod_rewriteでURLを書き換えているとします。例えば、

RewriteRule ^foo/(.+)$ foo.cgi?value=$1 [L]

のように書き換えているとき、http://server/foo/bar%2Fbazのような%2Fを含むパスにアクセスすると404になります。ちなみに、書き換え後のhttp://server/foo.cgi?value=bar%2Fbazにアクセスすることはできます。調べてみたところ、これはapacheがパスの中に%2F(「/」のエスケープ)が含まれているのを許さないためで、バーチャルホストの設定で、

AllowEncodedSlashes On

と設定するとアクセスできるようになります(apache 2.0.46以降)。

AllowEncodedSlashesのドキュメント

[]