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