URL末尾にスラッシュは本当に必要なのか

ホームページのURL末尾につけるスラッシュ「/」のことを「トレイリングスラッシュ(trailing slash)」といいますが、どの程度必要かということについて。

一般的に、URLの末尾にスラッシュがある場合は、ディレクトリを直接指定しており、スラッシュが無の場合は、ファイルを指定すると分けて使用されてきました。

また、サブディレクトリとルートのドメインの場合は、若干意味合いが異なります。

とはいえ、明確にルール付されているものではなく、慣例とされているだけです。

検索エンジンのGoogleにおいては、リンク先としては別物として扱われ、リンクジュースが分散されるとされています。これは同一ページでもパラメータがついていると別ページとして認識されるといった場合と同じで、同一パスのみを同じリンク先として認識するというGoogleの仕様といったところでしょうか。

サブディレクトリにおいて、たとえば以下のような記述で両方ステータスコード200を返すのは間違いではありませんが、どちらかにリダイレクトされるようなサーバー設定が望ましいようです。

http://google.com/sample/

http://google.com/sample

さらにGoogleの検索エンジンにとっては上記がそれぞれ異なるコンテンツをもっていても技術的には何ら問題ないようです。

ただしユーザビリティの視点からは、やはりリダイレクト設定をすることが望ましく、サーバー運用の効率化にもつながります。

http://google.com/sample

なので、上記URLにアクセスした場合ステータスコード200を返さずに、下記のスラッシュありにリダイレクトする設定が望ましい。

そもそも、サブディレクトリにトレイリングスラッシュがある場合は、上記の例でいうと、sampleディレクトリ内のファイルを検索するようになり、トレイリングスラッシュなしの場合は、sampleファイルを探しにいくことになります。ただほとんどのレンタルサーバーがリダイレクト設定で該当フォルダのindexファイルを参照する設定になっているので、一般的な利用で気にする必要はないのですが。

この辺はApacheなどでローカルサーバーを設定してみたことがある方であれば、専門の技術者でなくても多少は理解できるでしょう。

ちなみに、ルート URLに関していえば、ブラウザからはトレイリングスラッシュをつけようが、つけまいが、スラッシュをつけてリクエストされていて、Googleも同じく、http://google.com として末尾にスラッシュがなくても、http://example.com/ とまったく同一URLとして認識され、リダイレクトされないようになっているようです。

ただし、リダイレクトされていても、スラッシュありなしが問題ないとしてもURLは統一しておくべきで、サブディレクトリの場合は特にそうしておく必要があります。

要はディレクトリ構造が統一されていれば、サブディレクトリでもトレイスラッシュのありなしは、特に決まりはなく、慣例としてスラッシュをつけるとなっているが、どちらの記述でも問題はありません。

レンタルサーバーを利用している場合は、ほとんどがリダイレクト設定になっているので、URLの統一さえ行えば問題はなく、そもそもサブディレクトリを指定することは、システムからのページ生成がない一般的なホームページではほとんどないわけで、URLを指定した場合は、ブラウザ側でトレイスラッシュを付属させてリクエストするので、事実上トレイスラッシュの必要かどうかの正誤論というのは、そもそも不毛で、URLパスの統一ということが重要であろう。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください