• ベストアンサー

URLの末尾の『/』の意味

色々なサイトを見ていて、サイト上に書かれたリンク先URLの末尾に『/』が付いているものと、 付いていないものがあります。 末尾に『/』が付いているURLから、わざと『/』を省いてアクセスしても アクセスができます。 また、付いていないものに『/』を付けてもアクセスできます。 (サイト上に『/』が付いているものから『/』を省いてアクセスしても アクセスは可能ですが、ブラウザのアドレスバーに表示されたURLを見てみると、 再び勝手に『/』が付いています。) このスラッシュは、何の為に付けたり付けなかったりするんでしょうか?? 初心者の考えとしては「付けない」もしくは「付ける」で統一すればいいのになぁ、 と感じるのですが。。。 分かる方、お願い致します!!

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

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.6

>ということは、​http://www.exsample.com/dir​ の【dir】というファイル(=WEBページ)があれば、 >『/』を付けなくていい、という事でしょうか?? 付けなくていいというか、「/」をファイル(index.html)の最後に付ける(index.html/)と例えファイルが存在していてもエラー(HTTPステータス 404 Not Found)になるからファイルという事が分かっているなら付けては駄目です。

hakase-chan
質問者

お礼

エラーになってしまうんですね! 意味がわかりました! ありがとうございました!!

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • Lean
  • ベストアンサー率72% (435/603)
回答No.5

http://www.exsample.com/dir/ 最後に「/」が付くのはディレクトリなので、例えばApacheだとDirectoryIndexディレクティブ(※)で設定されている順にファイルが存在するか確認し、存在する場合にはそのファイルの内容を返します。 存在するものが一つもない場合には、ディレクトリのリスト(Indexes オプションが指定されている時)を返します。 ※クライアントがディレクトリをリクエストしたときに調べるリソースのリスト ○ http://www.exsample.com/dir 最後に「/」がない場合ですが、まずdirというファイルを探します。 無ければエラーになりますが、ディレクトリとして存在する場合にはサーバから指定したURL(応答ヘッダのLocation:にあるURL=最後に/がついたURL)でアクセスすべき(HTTPステータス 301 Moved Permanently)という応答が返ります。 するとブラウザは、再度サーバから指定されたURLでサーバにアクセスします。 つまり、1回余計な通信が発生する事になります。 上記の動作をするので >(サイト上に『/』が付いているものから『/』を省いてアクセスしても >アクセスは可能ですが、ブラウザのアドレスバーに表示されたURLを見てみると、 >再び勝手に『/』が付いています。) という事になります。

hakase-chan
質問者

補足

>最後に「/」がない場合ですが、まずdirというファイルを探します。 >無ければエラーになりますが、ディレクトリとして存在する場合にはサー >バから指定したURL(応答ヘッダのLocation:にあるURL=最後に/がついたU >RL)でアクセスすべき(HTTPステータス 301 Moved Permanently)という応 >答が返ります。 ということは、http://www.exsample.com/dir の【dir】というファイル(=WEBページ)があれば、 『/』を付けなくていい、という事でしょうか?? お願い致します。

すると、全ての回答が全文表示されます。
  • xs200
  • ベストアンサー率47% (559/1173)
回答No.4

最後の/を抜くとサーバーは取得エラーを返します。するとブラウザーは勝手に最後に/を付けてリトライします。これは自動で行われているのでどちらでもアクセスできるように見えているだけです。無駄なトラフィックを増やさないように最後の/は付けるべきです。 http://www.goo.ne.jp ---> これはだめ http://www.goo.ne.jp/ ---> ok #2の例のように内部ディレクトリーの場合にはどちらでもいいです(sampleというファイルがなければ)。 http://osiete_goo.co.jp/sample http://osiete_goo.co.jp/sample/

すると、全ての回答が全文表示されます。
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★『/』文字について ・最初に2つのアドレスを紹介します。→例えですので存在しないURLですよ。  (1)『http://osiete_goo.co.jp/sample』  (2)『http://osiete_goo.co.jp/sample/』 ・上記の(1)は通常ファイルを意味します。  つまり『http://osiete_goo.co.jp』というディレクトリ内に『sample』という名前の  ファイルがあるという事です。  上記の(2)はディレクトリを意味します。 ・まず『/』文字の意味ですがこれは、ディレクトリの区切り文字です。  Windows ではフォルダ・パスを『\』文字で区切りますよね。これと同じ意味です。  ネットでは『/』文字で表現するのです。 ・それで『/』文字がないアドレス(URL)は最初ファイルとしてサーバの HDD から探します。  もし見つからなければ、ディレクトリ・パスと解釈をして『/』文字を自動補正して  処理しますが、このとき自動補正されたディレクトリに『index.html』のファイルが  見つかるとブラウザは、その HTML ファイルを表示します。 ・上記の例では『http://osiete_goo.co.jp/sample/index.html』が見つかったのでそれを  表示することになりますが、アドレスバーには『index.html』は追加されないようです。 結論: ・よって『/』文字が付いていればディレクトリ、なければファイルを表しますが、『/』文字が  なくてもディレクトリだと自動補正してサーバの HDD から『index.html』などがあればそれ  をブラウザが表示するため、ディレクトリと判定された場合は両方とも同じ処理になります。 ・もしファイルを表すアドレス(URL)ならば、『/』を付けると『ページが見つからない』という  エラーになります。→多くの場合はディレクトリをサイトの上部で記述しているため『/』文字  を追加しても、削除しても同じにアクセスできるのです。 ・以上。おわり。

すると、全ての回答が全文表示されます。
  • alpha123
  • ベストアンサー率35% (1721/4875)
回答No.2

末尾が「/」で終わるものはたいてい「/index.htm」としても同じページに行き着きます。htmがhtml、あるいはstart.htmなどでもそれはサーバー管理者の好みです。末尾の/省いてもいいことがある。 いまでは「www.***.com」のwww省いても、http://省いてもアクセスできることは多い。ここらもブラウザの仕様やサーバーの設定しだいです。 初期にはフルパスで入力するとDNS引く回数が減る(ネットの負担が少ない)といわれたようだが、DNSのコピーは各所にあるからどっちでも大差ない。 http://www.724685.com/06howto/table/table10.htm

すると、全ての回答が全文表示されます。
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

> このスラッシュは、何の為に付けたり付けなかったりするんでしょうか?? 早い話が、ディレクトリかどうかを指定するためのものです。 ディレクトリであれば、最後のスラッシュは付けるのが正しいようです。

参考URL:
http://oku.edu.mie-u.ac.jp/~okumura/html/whichurl.html
すると、全ての回答が全文表示されます。

関連するQ&A