BitArts Blog

ロードバイク通勤のRubyプログラマで伊豆ダイバー。の個人的なブログ。

URL末尾のスラッシュ

「URLの最後に付いてる『/』(スラッシュ)って必要なの?」という質問を受けたりしたので書いてみる。間違いがあったらご指摘お願いします。

これ聞かれるのは初めてじゃないような気がする。

たとえば https://bitarts.jp/tech/https://bitarts.jp/techでもアクセスできるじゃん。という話。

結論

⇒ 省略するべきではない

省略可能な場合の話ですよ。もちろん末尾にスラッシュの無いURLもあります。スラッシュが省略可能か、必須か、不要か。これはURLから判別することは不可能(最後が「.html」などの場合は付かないことが多いけど、リクストパス記述に対して何を返すかはサーバの勝手なので断定は不可能)。

そこでお勧めとしては、Webブラウザでページを表示してみて、ロケーションバーに表示されているURL表記に従うのが良いと思います。そこでスラッシュが付いているならそのまま。付いてないなら無しのまま。大丈夫そうだからといって勝手に付けたり外したりして表記するべきではないです。

省略するとどうなる?

⇒ サーバから正しいURLへの転送を求められて接続し直し

素直に「ファイルが見つかりません(404 Not Found)」となる場合もあるけど、多くの場合はサーバの好意的処理により「そのURLは微妙に間違ってるから正しいURLでアクセスし直してよ!(301 Moved Permanently)」という結果が返されて、ブラウザはサーバから指示されたURLに自動的に接続し直します。利用者からみたら何事もなかったかのようにアクセスできるのですが、実は裏では余計な通信が発生しているのです。

外部からのアクセスでは仕方ないケースもあるにせよ、自分でリンクを設定する時には注意しましょう。

https://bitarts.jp はどうなのよ

⇒ 本当はダメだけどデザイン上の意図的なもの

省略すべきではないのにガッツリ省略している当社のロゴはなんなんだと言われそうです。

実はこの場合は上に書いた動作とはちょっと異なってきます。https://bitarts.jp の表記ではそもそもbitarts.jpに対して要求するリソースの場所が書かれていないのでURLとして不完全です。省略してはいけません。この場合Webブラウザは、スラッシュを補完して https://bitarts.jp/ にアクセスします。前述したようなリダイレクトなどの余計な通信は発生しませんが、ブラウザがほんの少しだけ余計な仕事をすることになります。

当社のロゴでURLのスラッシュが省略されている理由は、ひとつは表示をシンプルにしたいという目的。もうひとつは、トップページ(/index.html)だけでなくbitarts.jp上のすべてコンテンツを表現するというニュアンスを含んでいるからです。いずれもデザインコンセプト上の理由なのでした。

そういえばwwwって省略できるの?

⇒ できない(できる場合は、サーバ上でそう設定されているから)

http://www.bitarts.co.jp/ でも、http://bitarts.co.jp/ でもアクセスできたりするパターン。

蛇足なので端折ります。最近はブラウザがwwwを勝手に補完したりもするみたいですけどね。

この場合でも最終的にページが表示された状態でロケーションバーに表示されているURLが正しいと考えるのがいいと思います。