Namazu-win32-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Netscape + Apache 日本語で検索できない?
田村と申します。
小嶋様、早々のお返事、ありがとうございます。
分かりにくい書き方で申し訳ございませんでした。
> IISの
> ときはNetscapeでもちゃんと動いていたが、ApacheにしたらIEは大丈夫
> だがNetscapeではうまく動かない、とおっしゃりたいのでしょうか。
大体そうです。Apache にするだけでは Namazu の検索は問題
ありませんが、検索結果上からパスに日本語を含む名前のファイルを
表示できなくなりました。
そこで WebDAV の日本語ファイル名問題を解決するために使われていると
いう、mod_encoding.so というモジュールを導入することで、日本語
URLの件は落着しましたが、今度は Namazu で日本語検索が出来なくなりまし
た。
IIS 使用時は特別なことを何もしなくても、どのブラウザでも問題なく
検索できていましたし、日本語名のファイルも問題なく表示できていました。
> あと、気になったのが、これまで、IEはデフォルトではURLをUTF-8で送る
> のですが、それではNamazu側が対応できないので、このチェックを外す
> ことにより問題なく動くという例がいくつか報告され
すみません。その問題は存じておりませんでした。
しかし、当方の環境ではIEを使う限り、URLをUTF-8で送出しても
何の問題もなく、日本語でのキーワード検索も日本語名ファイルの
表示も可能でした。
(逆にこのチェックを外すことで、Apache の場合、検索は出来ても
中味を表示できないという問題が起こりました)
Apache のアクセスログを調べてみると、確かに アドレスバーから
直接入力したり、文書からリンクされたりする日本語を含む URL は
IE 側で UTF-8 にエンコードしたものが送られるのですが、フォーム
から送出された文字列は、そのフォームのある文書の文字コードに
依存することが分かりました。当方の IE の設定でもうまく動作して
いた理由がわかりました。
# .namazurc の Lang 変数の値を ja_JP.SJIS にすればフォームは
# shift_jis を、ja_JP.eucJP にすれば euc-jp を送出していました。
> NetscapeはShift_JISで送るから、ApacheでこれをUTF-8に変換したい
そうです。最初はこれで解決すると思っていたのですが、
先ほども申しましたとおり、Namazu が UTF-8 に対応していないことを
存じておりませんでしたので、問題の発生を予想できませんでした。
> Apacheに入れ替えたら、何が問題となったのでしょうか。そして、それ
> はIISの時にはどうだったのでしょうか。
まとめると、クライアントに Netscape を使用した場合、
サーバは Apache 単体
・日本語でのキーワード検索はできる。
・検索結果を文字化けせずに表示できる。
・検索結果上から日本語を含むURLが指すファイルを表示できない。
(404 Not Found を返された)
サーバは Apache + mod_encoding
(Netscape でアクセスした場合に限り URL をエンコードするように設定)
・日本語でのキーワード検索ができない
(query が Apache 側で UTF-8 にエンコードされるから?)
・search ボタンを押してフォーム送出後、query フォームには
おそらく UTF-8 にエンコードされたと思われる、文字化けした
文字が並んでいる。
・日本語URLが指すファイルは表示できる。
ということです。IIS ではこのような問題はありませんした。
# すみません。Namazu とはあまり関係のない、だいぶ Apache 寄りの
# 質問なんだろうな、と思います。
(株)島精機製作所 システム開発部
田村孝彦 (Takahiko TAMURA)
takat@xxxxxxxxxxxxxxxx
TEL +81-73-474-8220
FAX +81-73-474-8276