• ベストアンサー

/../../ の意味について

あるウェブページのソースを見ていたら、次のようなリンクがありました。 <a href="http://xxxx.jp/../../abc/def.html"> (URLは仮のものです) このページ自体のURLはhttp://xxxx.jp/cat/cat.htmlだとします。つまり同一サイト内のページにリンクしているわけです。 上のリンクの /../../ にはどういう意味があるのでしょうか。 教えてください。 実際に上のリンクをクリックするとhttp://xxxx.jp/abc/def.htmlにジャンプするようです。

質問者が選んだベストアンサー

  • ベストアンサー
  • PED02744
  • ベストアンサー率40% (157/390)
回答No.6

本来なら必要ない ../(上位ディレクトリへの移動) というのが含まれているだけです。 普通のコマンドプロンプトでも C:\> cd ..\ としても C:\> から移動しないのと同じです。気にしてはいけません(笑) ちなみに、なんでこんな変な指定になるのかというと、おそらくプログラムで動的にパスを指定しているからだと思います。 String contextPath=request.getContextPath(); String abcDefPath="../../abc/def.html"; String path = contextPath + File.separator + abcDefPath; コンテキストルートが元々は2階層下だったのに、トップ階層に移動しちゃったんじゃないでしょうかね。

modern5000
質問者

お礼

なるほど。元々2階層上を示すつもりの "../../abc/def.html" というリンクとサイトのドメイン部分を1つにしてしまった、ということは、HTMLを理解している人が手作業で書く場合にはありえませんが、プログラムが自動生成した場合には考えられますね。 少し謎が解けた気がします。 回答ありがとうございました。

その他の回答 (5)

回答No.5

質問の回答とは関係ないので削除対象かもしれませんが。。。 http://から書くとリンクが張られてしまうので、 それを防止するためにxxxx.jpと書いています。ご了承下さい。 そのため、先日書いたxxxx.jpは、http://を省略しているものと見なしてください。 まぎらわしい書き方で申し訳ありません。 xxxx.jpというドメインはたまたま使われていないようですが、 明日、だれかが取得、使用するかも知れませんし、もしかするとそれがいわゆるアダルトサイトへのリンク、、、ならマシな方で、 ウイルスの巣窟へのリンクになるかも知れません。 一般的にはexample.comなどのドメインを、例として使える様になっていますが、 OKWaveやその提携サイト(教えてGooなど)では*を使う様に指示しています。 例 http://****.jp/

modern5000
質問者

お礼

http://****.jp/ という書き方が指定されているのは気がつきませんでした。(><) 例としてあげたURLが意図せずして自動リンクになってしまう点も含めて、 ここに書き込むときは今後気をつけます。 ご指摘ありがとうございました。

  • 123isao
  • ベストアンサー率54% (186/341)
回答No.4

http://xxxx.jp/../../ は普通は http://xxxx.jp/と同じです。 URLが長くなるだけなので正しい使い方とはいえないでしょう。 レベルが低い人ならURLの記述がよく分かっていない、高い人なら ソフトなどに読み込まれるのを防ぐため(ソフトが予想外のURLを認識できない)わざとやっているのかもしれません。

modern5000
質問者

お礼

ソフトなどに読み込まれるのを防ぐためわざとですか。 それは1つの可能性として考えられますね。 できればもっと詳しい情報(参考ページなどがあれば)を知りたいところですが。 回答ありがとうございました。

回答No.3

../ というのは1つ上のディレクトリと言う意味です。 ../../ では「1つ上のディレクトリ」が2つですから、2つ上のディレクトリを意味します。 一番上のディレクトリよりも上にはいけませんから、それ以上../があっても無視されます。 http://から始まるアドレスはそのままのURLになります。 /から始まるアドレスはドメインだけを書いた場合と同じxxxx.jp/を意味します。 xxxx.jp/../../abc/def.htmlとなっている場合、 ../../は一番上のディレクトリよりも上を指すことになりますが、これらは無視されますので、 xxxx.jp/abc/def.htmlと同じになります。

modern5000
質問者

お礼

回答ありがとうございます。 HTMLのパスに関するサイトをあちこち調べてみましたが、該当する答えが見つかりませんでした。 ブラウザはフルパスの中の ../ を単に無視するみたいです。

modern5000
質問者

補足

http://xxxx.jp/cat/cat.html からhttp://xxxx.jp/abc/def.html へのルートとして考えると、 a href="../abc/def.html" や、 a href="/abc/def.html" ならわかりますが、 a href="http://xxxx.jp/../../abc/def.html" のようにhttp://xxxx.jpから始める意味がわかりません。

  • pula2
  • ベストアンサー率21% (10/46)
回答No.2

たとえばhttp://xxxx.jp/../とアドレスを打ち込んでやるとどうなりますか?

modern5000
質問者

お礼

回答ありがとうございます。 すみません、補足にhttp://xxxx.jp/../​とあるのはhttp://xxxx.jp/のことです。

modern5000
質問者

補足

私が作ったページではないので...(^^; でも試してみると、http://xxxx.jp/../​なら http://xxxx.jp/にジャンプするようです。(ブラウザに関係なく。)

  • simone86
  • ベストアンサー率50% (23/46)
回答No.1

こんにちは。 ソース上に直接、 <a href="http://xxxx.jp/../../abc/def.html">の記述がありましたか? <a href="../../abc/def.html">でなくて? ../ には、階層を1つ上がるという意味があります。 ../../ だと、2つ上がるという意味です。 相対パスの記述ミスかな?と単純に思うのですが、 絶対パス(フルパス)で ../ が含まれると言うのは??ですね。 回答になっていないようですみません^^;

modern5000
質問者

お礼

すみません、上にお礼書いちゃいました。 しかもここでまた補足しちゃいます(^^; 使われていたのはある県のホームページで、しっかりしたサイトなので単なるリンクミスとも思えません。 しかも同様の構文が何箇所も使われているんです。 HTML作成ソフトが自動生成したリンクでしょうかねえ。。。

modern5000
質問者

補足

回答ありがとうございます。 相対アドレスじゃないんです。 上に書いたように、http://~で始まるフルパスなんです。 無効リンクにはなっていないものの、/../../で何かが略されているわけでもなく、意味がわからないんです。

関連するQ&A

専門家に質問してみよう