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>