Namazuは検索文字がShift-JISかEUC-JPでないと文字化けして検索が出来ないので、UTF-8のページには設置出来ない。なので、入力されたUTF-8の文字列をEUC-JPに変換するラッパーみたいなのを書けばいいんじゃないかと思って、適当に書いた時のメモ。
単純に、フォームから入力された文字列をEUC-JPに変換したのちURLエンコードして、namazu.cgiの後ろにくっつけてリダイレクトさせれば良いんじゃないのかと浅はかな考えで書いた。
<?php
$url = 'http://isaji.jp/cgi-bin/namazu.cgi';
$query = $_POST['query'];
$whence = '0';
$lang = 'ja';
$max = '20';
$query = rawurlencode(mb_convert_encoding($query, 'EUC-JP', 'auto'));
header("Location: $url?query=$query&whence=$whence&max=$max&lang=$lang");
exit;
?>
何故かPHPで。これを例えばpost.phpという名前にして、htmlの方に記述するフォーム部分はこんな感じでOK
<form method="post" action="./post.php">
<p><label>サイト内Namazu検索
<input type="text" name="query" accesskey="q" tabindex="1" size="20" value="" /></label>
<input type="submit" name="submit" tabindex="2" accesskey="s" value="検索(s)" />
</p>
</form>
POSTメソッドでqueryにぶち込んでる感じで。
一応使えてるんだけど、こんなもんで良いのかと不安なので、まだ自宅サーバでのテストしかしてません。