Namazu-win32-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Netscape + Apache 日本語で検索できない?



竹迫です。

>> 逆に、namazu の動いている /cgi-bin 以下で EncodingEngine が Off に
>> なっていれば良いので、、、
>>
>> <IfModule mod_encoding.c>
>>     EncodingEngine On
>>     SetServerEncoding UTF-8
>>     AddClientEncoding "Mozilla/5" JA-AUTO-SJIS-MS
>>     <Location /cgi-bin>
>>       EncodingEngine Off
>>     </Location>
>> </IfModule>
>
>  WebDAV は導入しかけて頓挫しているので、こちらの方法で試してみましたが
>  検索が出来ませんでした。症状は対応する前と同じです。

すみません。手元の環境で試してみましたが、この方法は駄目でした。
一度、Server ディレクティブで EncodingEngine を On にしてしまうと
他の Location で off にすることはできないようです。

お手数ですが、一番最初の方法で試していただけないでしょうか?
Webサーバ経由でダウンロードするときのルートディレクトリさえ
決まっていれば、この方法で正常に動作するようになると思います。

先ほどの例ではディレクトリ名を /DAV としていましたが、
WebDAV である必要はありません。/share 以下に、日本語の
パスが含まれている場合は、単純に、

<IfModule mod_encoding.c>
  <Location /share>
    EncodingEngine On
    SetServerEncoding UTF-8
    AddClientEncoding "Mozilla/5" JA-AUTO-SJIS-MS
  </Location>
</IfModule>

とすれば大丈夫です。

ルートディレクトリが複数存在する場合 (/share /doc /www ...) は、
LocationMatch を利用して、

<IfModule mod_encoding.c>
  <LocationMatch "/(share|doc|www)">
    EncodingEngine On
    SetServerEncoding UTF-8
    AddClientEncoding "Mozilla/5" JA-AUTO-SJIS-MS
  </LocationMatch>
</IfModule>

と書くこともできます。

>> IIS の場合は、URI パス中に含まれる UTF-8 の文字列をサーバ上の
>> ファイルシステム上のエンコーディングに自動マッピングして
>
>  つまり、URL 中の ? より前の部分に UTF-8 文字が含まれていても
>  サーバにおける文字コードに依存して、例えば shift_jis とかに
>  変換されるわけですね。

IIS 5.0 では、そうだったと思います。

>  IE では「URLをUTF-8で送信」にしていても QUERY_STRING は文書の
>  文字コードに依存する(UTF-8にならない)という私の推測は間違っては
>  いないでしょうか?

はい。最近のブラウザの挙動としては、その通りだと思います。
(大昔の IE だけ、動きが違っていたと思いますが・・・)

>  mod_encoding をいじると IIS のような振る舞いが出来る
>  可能性があるのでしょうか?

可能性は高いと思います。最初は、mod_encoding のソースを修正して
みようかと思ったのですが、今は、設定で回避できる事がわかったので、
ソースコードをいじる気力が消滅してしまいました。(^^;

--
  株式会社ドリーム・アーツ 製品企画開発本部
    竹迫 良範  <takesako@xxxxxxxxxx>