wikieditish 問題解決
2004/05/10 Mon 23:10
wikieditish.cgi に変数や詳しいエラーメッセージを表示させながらサーバ上で色々試してたら、wikieditish プラグインおよび wikieditish.cgi がうまく動かなかった原因が判明。XREA では path_info が2つ重なってスクリプトに渡されるようです(/hoge/foo → /hoge/foo/hoge/foo となる。何のメリットが?)。なのでここの対策を施しつつ、~.cgi のディレクトリ設定を絶対から相対パスに直したら、どちらともあっさり動作。この問題、XREA で path_info を利用する機会があるユーザにとっては常識化してたっぽい。以下、blosxom.cgi 105行目付近の対策例。
# before :
my @path_info = split m{/}, path_info() || param('path');
shift @path_info;
# after :
my $tmp_path_info = path_info() || param('path');
$tmp_path_info =~ s/(.+)\1/$1/;
my @path_info = split m{/}, $tmp_path_info;
shift @path_info;
とにかく2番目の問題も解決。しかも両選択肢が同じ対策で一挙に使えるようになったので、どちらにするか迷うところ。でも~.cgi にはアップロード機能があるし、独立動作なので改造もしやすそう。タイムスタンプ修正機能を組み込めたらこっちを使おうかな。来週あたりに実装を試みてみたい。
FB.com