静岡のHP屋コラム
2016.09.21
URLの最後につくスラッシュっているの?
結論としてはスラッシュを付ける方がよいです。
スラッシュの有無で同じページが表示される場合はURLの最後のスラッシュはあってもなくても構いませんが、誤認識などを防ぐという観点からスラッシュを付けておく方が無難です。
いきなり結論から入りましたが、皆さんは「トレイリングスラッシュ」ってご存知でしょうか?
ホームページ制作などを行っている人なら聞いたことがあるかもしれませんが、ほとんどの方は耳なじみがない単語だと思います。ちなみに私は、最初に聞いた時にドラ○ンクエ○ト系の必殺技かと思いました。
「トレイリングスラッシュ(trailing slash)」とはURLの最後につく「/(スラッシュ)」のことです。
トレイリングスラッシュの有無で表示されるページが変わらない場合
多くのWebサイトはこのような動作をするのではないでしょうか?
これはユーザに見えないところで最終的に同じファイルを閲覧するようにサーバやブラウザが動作しているからです。
ですので、この場合トレイリングスラッシュはあってもなくても構いません。
※別URLで同じページが表示されることでコンテンツ重複が発生し、SEOで不利になるのではないかという話がありますが、検索エンジンの方で正規化して処理されるため、この部分をシビアに気にする必要はありません。
トレイリングスラッシュの有無で違うページが表示される場合
改めて記載するしなくてもわかると思いますが、この場合は表示したい方のURLを使うようにしてください。個人的な意見になりますが、スラッシュがない場合は
http://example/company.html
のように拡張子も一緒に記載した方が誤認識が発生しにくいのでおすすめです。
なぜ違うURLで同じページが表示されたり、違うページが表示されたりするのか?
そもそもなぜURLが異なるのに同じページが表示される場合があるのかという部分について少し説明します。
トレイリングスラッシュがあってもなくても同じページが表示される場合、最終的に参照するファイルは同じファイルとなります。
ただし、ファイルにたどり着くまでの過程がURLにより異なります。
[スラッシュあり]
[スラッシュなし]
URL中の"/"はパソコンの"¥"のようなもので、フォルダ(ディレクトリ)の階層を表しています。
トレイリングスラッシュが有る場合は"profile"というフォルダ(ディレクトリ)の中を参照します。
上記のURLですと実際は以下のファイルを表示しています。
※サーバなど設定によりindex.html、index.htm、index.cgi、index.phpなどを参照する場合がありますが今回はややこしくなるので省略します。
トレイリングスラッシュがない場合は、"company"というフォルダ(ディレクトリ)の中の"profile"という名称のファイルを参照しようとします。
しかし、"profile"という名称のファイルがないため、トレイリングスラッシュがある場合と同様に
"profile"というフォルダ(ディレクトリ)の中を参照します。
このように最終的に参照するファイルは同じものですが、トレイリングスラッシュがない場合の方がファイルにたどり着くまでの手順が1つ増えます。
手順が1つ増えるといってもユーザ側で意識する必要はないので、トレイリングスラッシュはあってもなくてもどちらでも構いません。
まとめ
私はURLを誰かにお知らせしたり、印刷物などに記載する場合は以下のルールで行っています。
正解があるわけではありませんが、誤認識などを防止するにも以下のルールがおすすめです。
- トレイリングスラッシュの有無で同ページが表示される場合はスラッシュを付ける
- トレイリングスラッシュ無しの場合は、拡張子まで記載する