HAYAGUI

FreeBSD 4.10 + Apache MultiView

はじめに

apache をインストールすると、以下のような「日本語で」ページが表示されます。

これは、ブラウザの言語によって apache が html ファイルを切り替えているからです。Internet Explorer の言語設定に英語(en)を追加して日本語より上にして、リロードすると今度は英語でページが表示されます。

こんな感じ。

このように、ブラウザの言語で表示する内容を変えるには、apache の MultiView 機能を有効にすることで可能です。今回は、自分のページをこれを利用して作成してみます。

apache

apache の httpd.conf と、先ほど apache が出していたページのディレクトリを見てみます。

以下の設定(本当は沢山の言語のファイルがあるのよ)があることを確認してください。またドキュメントのディレクティブに MultiView があると思います。

AddLanguage en .en
AddLanguage ja .ja
AddCharset ISO-2022-JP .iso2022-jp .jis

MultiViews
ドキュメント保存先を見てみます。index.html というファイルはありませんが、.en とか .ja.iso2022-jp が付加された index.html があります。
jhon# pwd
/usr/local/www/data-dist
jhon# ls
apache_pb.gif                   index.html.ja.iso2022-jp
apache_pb.png                   index.html.ko.euc-kr
apache_pb2.gif                  index.html.lb.utf8
apache_pb2.png                  index.html.nl
apache_pb2_ani.gif              index.html.nn
index.html.ca                   index.html.no
index.html.cz.iso8859-2         index.html.po.iso8859-2
index.html.de                   index.html.pt
index.html.dk                   index.html.pt-br
index.html.ee                   index.html.ru.cp-1251
index.html.el                   index.html.ru.cp866
index.html.en                   index.html.ru.iso-ru
index.html.es                   index.html.ru.koi8-r
index.html.et                   index.html.ru.utf8
index.html.fr                   index.html.sv
index.html.he.iso8859-8         index.html.var
index.html.hr.iso8859-2         index.html.zh-cn.gb2312
index.html.it                   index.html.zh-tw.big5
jhon#
それでは、/home/*/public_html ディレクトリを有効にして、MultiView 機能を使ってみましょう。
<Directory /home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit Indexes
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    <Limit GET POST OPTIONS PROPFIND>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS PROPFIND>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>
設定を変更したら、apache をリスタートします。
jhon# apachectl restart

MultiView機能を試す

個人の public_html ディレクトリに以下のようなファイルを作ります。日本語用の html は、JIS + LF で保存します。
> pwd
/usr/home/kenz/public_html
> ls
index.html.en   index.html.ja.iso2022-jp


> cat index.html.en
<html>
<body>
<h1>English</h1>
</body>
</html>

> cat index.html.ja.iso2022-jp
<html>
<body>
<h1>日本語(JIS)だよ</h1>
</body>
</html>
>

ブラウザの言語が en だと、このように表示されます。

日本語が優先だと、このようになると。

これはおもしろい。


戻る



(C)1999 - 2004 Kenji Ito All rights reserved.