
同じサイト内では相対パス。他サイトへの場合は絶対パス。
原則はこれで問題ありません。
ただし、絶対パスの場合、同じサイト内のページであるにも関わらず、相対パスではなく、絶対パスで指定しなければならない場合があります。
パターン1)プログラムへのリンク
CGIなどの動的ページへのリンクは、絶対パスを使用することが多かったりします。
1つの理由として、サーバーによっては、プログラムを置くディレクトリが制限されていることがあるからです。
しかも、呼び出す(作動させる)ときに「このアドレスじゃないと呼び出せませんよ」となっていることがあるのです(面倒な…)。
たとえば、通常のページは
http://www.tikurin.que.jp/
でも、プログラムは
http://cgi-bin.que.jp/bbs.cgi
というアドレスじゃないと動かせない、というようなことも!
企業のサイトではあまりないと思いますが…。
この場合、http://www.tikurin.que.jp/index.htmlからプログラムにリンクを貼るときは、http://cgi-bin.que.jp/bbs.cgiときちんと書かなくてはいけない、ということになります。
わかりやすく言うと…
http://www.tikurin.que.jp/をAさんの住所
http://cgi-bin.que.jp/bbs.cgiをBさんの住所
として考えて見ましょう。
相対パスはAさんのおうちの中でなら通用します。
「chara/index.html」というモノがあったとしたら、
「家の中の、chara/index.htmlをとってよ」
で通じます。これが相対パス。
一方、プログラムはBさんのおうちにあります。この場合、Aさんの家にいるのなら
「プログラムとってよ」
といっても、どこの何かはわかりません。
「Bさんのところにあるプログラムだよ」
といって初めてわかります。これが絶対パス。
プログラムは他の住所にあるので、絶対パスで指定しないといけないことがある、ということです。
あとは、個人的な理由なのですが、こんなこともあります。
例えば、自分のパソコンでまずはサイトを作成します。
その際、よく「プレビュー」機能を使って、実際にページがどのように表示されるのか確認しながら作業を行うのですが、プログラムはローカル(つまり自分のパソコンの中)では、作動しません(作動させる方法もありますが)。
なので、はい、見てください。こんな感じになります。

これでは、実際に正しくリンクが貼られているのか、といったことは確認できません。
ですので、実際に本番ページにUPされているプログラムへの絶対パスでのリンクを貼ったりするのです。
そうすると、すでにUPされているものですので、ローカルで確認しても現在本番にUPされているものが読み込まれてきちんと表示される、というわけです。
まあ、理由はどうであれ、「プログラムへのリンクは絶対パスで指定することもある」ということです。
パターン2)プログラム内でのリンク
私も詳しくはまったーくわかりませんが、なにやらプログラムの中には、「絶対パスで指定」しないといけない場合があるようです。
そうしないと、動かないというわけです。
パターン3)セキュリティのかかったページへのリンク
会員制サイトや、ショッピングサイトでは、SSLという暗号化されたセキュリティのかかっているページが存在します。
この場合、通常のページは「http」で始まるのですが、SSLのページは「https」と最後に「s」がくっついています。このときは、相対パスではなく、絶対パスを使う必要があります。
「http」で始まるページから相対パスでリンクを貼ることはできないからです。
逆もまた然り。「https」が必要のない、通常のページへ戻す場合は、絶対パスでリンクを貼る必要があります。時々、これができていないサイトにお目にかかりますが(笑)。
後者はさほど問題ないかもしれませんが、前者はセキュリティをかけるべきところが、かかっていないということになってしまいますので、気をつけてください!
|