Apache の URL rewriting 機能を使って, web server と同じ環境を構築する
私は, 自分の PC では "msato" という名前を使ってます. これ は, 大学院へ進学したときに, 共用の計算機で使った名前です. 最初は "sato" や "masahiro" にしたかったのですが, 両方と も塞がっていたので, 申請時にその場で決めた名前です. 思い付きで決めた名 前ですが, 割と気に入ってまして, 今では m@sa.to というメールアドレスまで使ってま す :-)
前置きが長くなりましたが, そういうわけなので, 私の PC では手元で立 ち上げた Apache を使って, /home/msato/public_html/ 以下を http://localhost/~msato/ でアクセスす ることができます. なので, 例えば次のようにしても, 手元で何 の問題もなく動作の確認ができます.
<img src="/~msato/image/usagi/usa-s.png" alt="[うさぎ印]" class="smallusagi">
でも, 今使っている web server でのユーザ名は msato ではなく, shiroikumo です. なので, 上のように指定すると手元では正しく見ることができても, web server で公開するときに見られなくなります. 私の場合には, web server で 正しく見せるためには次のようにする必要があります.
<img src="/shiroikumo/image/usagi/usa-s.png" alt="[うさぎ印]" class="smallusagi">
しかしながら, 上のようにすると, 今度は手元で正しく表示されなく なってしまいます. あちらを立てればこちらが立たず, という状態です. 1 つ の解決方法として, 相対 パスを使って, 次のように書く方法もあるでしょう.
<img src="../../image/usagi/usa-s.png" alt="[うさぎ印]" class="smallusagi">
これは, 階層が浅いうちは簡単です. でも階層が深くなってきたり, SSI の include を使って 様々な階層のファイルへ挿入する文書を作ろうとすると, 絶対パスのほうが断 然便利になってきます. そこで, 公開している web server と手元のマ シンでユーザ名が違っていても, うまく絶対パスを使えるようにするために, Apache の URL rewriting 機能 を使ってみます.
Apache には, URL rewriting と いう, URL を書き換えてくれる機能 があります. これは, mod_rewrite というモジュールの機能ですが, 標準的な設定でコンパイルした Apache には組み込まれていないと思 います. もし mod_rewrite が組み込まれていなかったら, 組み込まれるよう にコンパイルをしなおして下さい.
URL rewriting の機能はかなり強力なので, ここで全てを説明することは しません. 詳しくは付属のマニュアルを読んで下さい. ここでは 目標 を実現する方法だけ, 説明します. この 目標 を実現するためには, 以下の 2 行を conf/httpd.conf に付け加えて, Apache を再起動させるだけで OK です.
RewriteEngine on RewriteRule ^/shiroikumo/(.*)$ /~msato/public_html/tripod/$1
1 行目で URL rewriting の機能を有効にし, 2 行目に書き換えのルールを
記述しています. ^/shiroikumo/(.*)$
の「(.*)」が
/~msato/public_html/tripod/$1
の「$1」に代入されるのですが, 詳
しいことを知りたいときには 正規表現の勉強をして下さい
. とりあえずは, 上の 2 行を追加するとだけ覚えておけばいいでしょ
う. shiroikumo とか msato/public_html/tripod あたりは, 適宜自分の場合
に置き換えて下さい.
現時点では, このページは Tripod Japan のサービスを利用し ています. ところで 本家 Tripod では, 各ユーザ のトップページに http://membername.tripod.com/ でアクセスで きるようです. Tripod Japan でも 将来的にこのサービスが利用できるようになったとき, 同じように URL rewriting を使ってうまくやる方法は, 私には分かりません (^^; 手元の計算 機に, そのような名前を付ければできるかもしれませんが.
でも, 他の web server を普通に使っている人なら, とりあえずこれだけでもできると随分違うと思います. これ以外にも, web server と同じ環境を手元に構築することは, HTML 文書製作にかなり役立 つと思いますので, web server が UNIX 系 OS と Apache なら, 手元の計算機に適当な PC-UNIX と Apache の組み合わせは, お勧めです.
おたより, お待ちしています
sato.mshr@gmail.comCopyright (C) 2000 Masahiro SATO