02/07/27 12:07 XCYe1qpS.net
諸事情がありましてapacheの一部をNASサーバーモドキ的な利用方法を行いたいのですが、日本語のファイル名がまれに存在します。rewriteを使ってUTF-8のリクエストを解読しようともくろんでたのですが、、、
URLリンク(japache.infoscience.co.jp)
この辺を参考にしてこんな感じにしました。
[httpd.conf]
~~途中~~
RewriteEngine on
RewriteMap hoge prg:/usr/local/apache2/bin/rewrite.pl
RewriteRule ^/hogehoge/(.*)$ /hogehoge/${hoge:$1}
~~途中~~
[rewrite.pl]
#!/usr/local/bin/perl
use Jcode;
$|=1;
while(<>){
s/%([\da-f][\da-f])/pack("C",hex($1))/egi;
Jcode::convert( \$_, "euc" );
print "$_\n";
}
なんとリクエストの変換結果が毎回1行分perlの<>の辺?にバッファされて、1回遅れで前回のリクエストの変換結果が返されてくるんです。(1回前のリクエストのファイルが帰ってくる)
<>で読み込まれるのが1行単位だから問題が発生してるのではないか?と思ってるのですがなにか解決方法はないでしょうかねぇ?
ちなみにapacheは2.0.39 perlは5.6.0なんですけど・・・途方に暮れてます。