「index.html」をスラッシュ(/)へ統一

URLの正規化「index.html」をスラッシュ(/)へ統一する方法

こちらの記事では、index.htmlの付いたURLを正規化する方法についてまとめていきます。

例えば、
http://example.com/index.html
のように、
URLにファイル名「index.html」を付けて運用されているサイトを時々見かけないでしょうか?

古い話になりますが、
私がWEBの世界に入った頃は、index.htmlを付けて運用しているサイトが多くありました。
もちろん、<a>タグにも、
index.htmlを付けたURLでリンク設定を行います。

<a href="http://example.com/index.html">xxxxxx</a>

最近は、スラッシュ(/)終わりにするのが当たり前になっているのですが、
今でも、時々 http://example.com/index.html で運用されているサイトを見かけることがあります。

URLにファイル名を指定しなければ、WEBサーバ側で勝手にindex.htmlをトップページとみなしてくれるので、
わざわざURLに記載しなくてもいいんですが。。。

で、それはいいのですが、
問題は、
http://example.com/index.html
にも、
http://example.com/
にも当然のようにアクセス出来てしまうことです。

URLが分散しないように、必ずリダイレクト設定を行って、どちらかに統一しておきましょう!

index.htmlの付いたURLの正規化

設定は、手っ取り早く、.htaccessを使って行ってしまいましょう。

以下の記述を、トップページと同じディレクトリ階層にある.htaccessに追記すればOKです。
.htaccessが作成されていなければ、自分で作成して下さい

RewriteEngine On
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://example.com/$1 [R=301,L]

※「example.com」の部分は、自分のサイトのドメイン名に書き換えて下さい。
 また、リダイレクトは、「R=301」を付けて、301リダイレクトで設定して下さい。

.htaccessの設置が終わったら、
http://example.com/index.html へアクセスしてみて下さい。

http://example.com/ へ転送されればOKです!

と言いたいところですが、
最近はPHPで作成されているサイトも多く、
トップページがindex.htmlではなくindex.phpになっているサイトも多いです。

その場合にも対応できるように、

RewriteEngine On
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://example.com/$1 [R=301,L]

という記述も、.htaccessに追記しておいた方がいいです。

ただ、同じような記述を2つ並べるのもアレなんで、

RewriteEngine On
RewriteCond %{THE_REQUEST} ^.*/index.(html|htm|php)
RewriteRule ^(.*)index.php$ http://example.com/$1 [R=301,L]

とまとめてしまった方がいいですね。
※まだ、index.htmにアクセスしてくるユーザーがいるかもしれないので、取り合えず、「htm」も入れておきます。

最後に

URLの正規化は、設定後のチェック作業が少し面倒ですが、
SEOにもかかわってくるので、必ず設定を行っておきましょう。

ただ、Googleの検索エンジンも、かなり賢くなっています。
いずれは、こういった正規化をしなくても、
http://example.com/index.html

http://example.com/index.php

http://example.com/
も、
同じURLと間違わずに認識してくれるようになるかもしれないですね。

そうなれば、
こちらも余計な手間が1つ減って、楽なんですが。

この記事を書いている人
株式会社ディープ
名前足立拓也

メールアドレスadachi@deep-deep.jp

関連記事

最近の記事

  1. カメラ
  2. アクセス解析
  3. ファイアウォール
  4. 一眼レフカメラ
  5. システム開発用のアイキャッチ
  6. FTPサーバー
  7. システム開発用のアイキャッチ
  8. Warning
  9. CMS(シーエムエス)
  10. CMS(シーエムエス)
PAGE TOP