@kyanny's blog

My thoughts, my life. Views/opinions are my own.

mod_rewrite で RewriteMap に prg: を使う場合は改行文字を出力する必要があるようだ

裏はとれていないですが、 mod_rewrite の RewriteMap に prg: で適当なプログラムをセットして、そいつを RewriteRule の中で使う場合に、出力する文字列のおしりに改行文字 \n をつけて出力しないと Rewrite が途中で止まってしまい、うんともすんともいわなくなっていました。

Perl なら $|=1 にして、バッファリングをさせないようにする、というのがドキュメントにも載っていて有名な話のようですが、 \n の話は見かけたことがなかったので、結構悩みました。

これが mod_rewrite で要求するから必要なものなのか、 $| のほうで必要になるものなのか、よくわかりませんが、ともかくこんなことがあったよ、という未来の自分へのメモを残しておきます。