楽々ページ製作術 01

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 機能 を使ってみます.

目標

手元の PC の現状
web server の現状
目標

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.com