あんなこんなのティップス集

PC関連

Webサイトの構築

CPU の MHz レート

私の友人がCPUの値ごろ感を見るためにCPUの価格をCPUの動作周波数で割っ た値を計算していました。メーカーやCPUの種類によってCPUの動作周波数とCPUの 能力の比は異なるのですが、値を並べてみるとなんとなくメーカーの思惑のよう なものが見えて興味深いものがあります。

CeleronとPentiumIIやPentiumIIIとの価格差が際だって見えます。


マルチリンガルでいこう - Sorry Japanese only ? -

マルチリンガルなんていっても、単にWebサーバーの機能を利用しよう、っ て話です。私は日本語以外はさっぱりです。

たいてのWebブラウザには言語なるものを設定する機能がついています。日 本語版のブラウザだと、デフォルト値として "日本語 [ja]" なんてのが設定 されているはずです。こいつは、Webサーバーに対して、「私は日本語が好き だから、できれば日本語で送ってくれ」と指定するための値です。

でも海外のページで、アクセスすると日本語が出てくるなんてのはめった に見ませんね。せいぜい日本語版へのリンクが張ってある程度です。要するに、 ブラウザの言語設定なんてほとんど無視されているわけです。

それなのに、ほとんどのブラウザにはこの設定項目があっ たりします。実装が楽だからってのもあるのでしょうけど、不思議ですね。

ということで、せっかくなのでこの機能を生かしてみましょう。Webサーバー が最近のApacheならばモジュールmod_negotiationがインストールされている はずです。httpd -lを実行してmod_negotiation.c が出てくればOKです。

あとは、mod_negotiationのマニュアルページを読めば設定は完了するので すが、とりあえず私がnewfs(8)の ホームページで使っている設定を書いておきます。

まず、各言語に対応したページを作ります。ここでは index.ja.html に日本語で、 index.en.html に英語(もどき)で書くことにします。

次に、ページと言語を関連付けする Type map を作ります。名前は index.var とでもしておきましょうか。

URI: index

URI: index.ja.html
Content-Type: text/html; charset=iso-2022-jp
Content-Language: ja

URI: index.en.html
Content-Type: text/html
Content-Language: en

URI: index.en.html
Content-Type: text/html

type-mapは空行で区切られたいくつかのエントリーから構成されます。最 初のエントリーは全体を表すURIを指定しておくのが慣習のようです。以降、 対応している言語毎のエントリーを続けます(言語以外にもContent-Type毎の エントリーを用意することもできます。最後のエントリーは、ブラウザからの 言語の指定がなかった場合や、対応していない言語を要求された場合の対策用 です。詳細はApacheのドキュメントを参考にしてください。

でもってこのファイル index.var が Type map であることをApacheに教えるために .htaccess に以下の行を追加します。

AddHandler type-map var

さらに、http://www.newfs.to/にアクセスした場合には index.var の内容を出力するように指定するために .htaccess に以下の行を追加します。

DirectoryIndex index.var index.shtml index.html

ここでは index.var がなかった場合は index.shtml、 それもなければ index.html の内容を出力するように指定しています。.htaccess による設定は. .htaccess があるディレクトリ以下のすべてに効果 があるので、index.var を作らないディレクトリのためにも index.shtml 等も必要に応じて読むように設定しておくわけです。

サーバーの設定はこれでおしまい。ブラウザの言語設定をあれこれ変更し て、どのページが表示されるのか試してみましょう。

これで、Sorry Japanese Only とはおさらば。でも英語版ページを書かな くちゃいけないから、かえって変な英語使いまくりかも。でも日本人には 日本語のページしか見えないから、英語が変だなんてツッコミ入れられること はなくなるのです(英語圏の人がわざわざアジアの小国民にツッコミ入れてく ることもないでしょう)。


最終更新日はいつ? SSI だからって、日付がないのは困りもの

アクセスカウンタなんかを埋め込むために SSIを使っているページは多い と思います。しかしこいつの難点は、普通に使っていると文書の最終更新日が わからなくなってしまうことです

SSIは文書を動的に生成する 機構なので、日付が付いていないのは意味的には正しいのですが、データベー スから文書を生成して出力しているのならともかく、カウンタや定型文書の挿 入のためにSSIを使っているだ けで、文書の最終更新日がわからなくなってしまうのは困りものです。

文書中に日付を書き込んでおく几帳面な人もいますが、きちん と管理しておくのは面倒なものです。また、文書中の日付はあくまでも人が読 むためのもので、自動巡回ソフトなんかには意味がありません

ということで、SSIを使って いても、最終更新日がちゃんとサーバーから取得できるようにしましょう。こ いつもApache(たぶん、UNIX版のみ)における設定方法です。必要に応じて mod_include のマニュアルを参照してください。

まず、通常通りにSSIが使える 環境にします。例えば、.htaccess に次のように設定します。

AddHandler server-parsed shtml
Options +Includes

addHandlerの行は必ずしも必要ないのですが、念のため設定 しておきます(詳細は後述)。さらに、次の行も .htaccess に追加します(これ がポイント)。

XBitHack full

full以外にも値は設定できますがここでは触れません。ドキュ メントを参照してください。XBitHack fullが指定されると SSI文書の実行許可ビットによっ て挙動が変化します。

グループの実行許可ビットが立っている場合
サーバーから取得される文書の最終更新日は、 SSI 文書ファイルの最終更新日と同じになる。
ユーザの実行許可ビットが立っている場合
ファイル名や拡張子によらず、その文書を SSI 処理する。

ということで、SSI文書の最 終更新日をファイルの更新日と合わせたければ、 chmod ug+x filenameとしてグループとユーザの実行許可ビットを 立てておきます。ug+x形式を受けつけない ftpサーバー上でモードを変 更する場合は、chmod 754 filenameのようにします。

ユーザ実行許可ビットが立ててあれば、拡張子によらず SSI として処理されるので、AddHandlerは不要になるのです。ただ し、何かのはずみでファイルの実行許可ビットが落ちてしまったときの用心に、 AddHandlerは設定しておいたほうが良いかもしれません。

Return to homy's this, that and others

Please send comments, suggestions, etc. to
CSS Used newfs(8)