next up previous index
Next: 7. 色指定 Up: 6. リンク Previous: 6.2 基本的なリンク


6.3 ローカルパス名と仮想パス名

同一サーバー内でのリンクを行うときには、ディレクトリ設定に注意する必要があります。通常、fileプロトコルを使って開いたドキュメントのパス名と、httpプロトコルを使ってWebサーバー経由で開いたドキュメントのパス名ではディレクトリの構造が異なります。

パスは、特定のファイルに行きつくためのディレクトリの羅列です。パス名はこれにその特定ファイルまで含めたものです。

たとえば/var/www/test.htmlというパス名のパスは、/var/wwwです。ハードディスク内にあるこの/var/www/test.htmlというWebページ用のファイルの中で/var/www/jp/index.htmlという別のディレクトリにあるファイルにリンクしたいとします。

ローカル(実際のハードディスク内)のディレクトリ構造に従って絶対パス名(一番最初のディレクトリ(/)からのパスをすべて記述したもの)で書くと、リンクは、<a href="/var/www/jp/index.html">のような記述になります。しかし、これをWebサーバー経由で参照すると、リンクポイントをクリックしたとたんに、ファイルが見つからないむねのエラーが表示されるでしょう。

Webサーバー経由では、絶対パスの根幹となる/ディレクトリ(ルートディレクトリ)は、ローカルのルートディレクトリと異なっているのが普通です。UNIXのWebサーバーの場合は/usr/local/etc/httpd/docs/var/wwwなどのディレクトリがWeb用の仮想のルートディレクトリとして設定されていることでしょう。

つまり、/var/wwwディレクトリが仮想ルートディレクトリとして設定されている状態で、ローカルに存在するファイルが/var/www/jp/index.htmlならば、このファイルに別のファイルからリンクするときには、仮想ルートディレクトリのパス/var/wwwを除いた/jp/index.htmlでこのファイルを参照することができます。

絶対パスで記述していると、ディレクトリ構造ごと移動したときに1つ1つのファイルのリンクを全部直さなければならなくなってしまいます。このため、1つ上のディレクトリ(親ディレクトリ)や1つ下のディレクトリ(サブディレクトリ)といった場所にあるファイルにリンクするときには、相対パスを使うのが一般的です。

相対パスでは「1つ上の階層のディレクトリ」を表すのに「..」を使います。「現在のディレクトリ」を表したい場合は「.」を使います。

いくつか例を示しましょう。

各ユーザーのホームディレクトリ内にある特定の名前のディレクトリが、各ユーザーの仮想ホームディレクトリとなります。このディレクトリ名はWebサーバーによって異なりますが、UNIXのWebサーバーの場合、public_htmlという名前になっているのが普通です。

Webサーバー経由で各自の仮想ホームディレクトリにアクセスする場合、次のようにユーザー名の前に%7e(%7Eでもかまいません)または~を付けます。URLでは~は使ってはならず、%7eを使うことになっていました。しかし、あまりにも~の表記が一般的になってしまったため、URIではどちらを使ってもよいことになっています。

http://サーバー名/~ユーザー名/ディレクトリ名/ファイル名



Kenshi Muto
平成11年9月19日