- ソースをガシガシ自分で書いているヒトなら、ソースを書くときに気をつければいいコトではあります。
しかし、HTMLオーサリングツールなんかを使って作っていると、どうしても「index.html」アリとナシのリンクができちゃうことがあるようです。
これが意外に曲者で、検索エンジンなどで「index.html」アリとナシが同じページなのに両方とも登録されちゃうことがあります。つまり、SEO的によろしくない、ということです。たとえば、
- http://www.photopierre.com/
- http://www.photopierre.com/index.html
この2つが、違うページを指し示しているのならば、それはアリだナシだと心配することはありません。でも、たいていのウェブサーバーは、ファイル名(index.htmlなど)を省略すると、
「省略されたファイル名はindex.htmlだ」
と断定するような設定になっています。
それなのに、「index.html」アリとナシが両方とも検索エンジンで表示されちゃったら、アリをクリックするヒトやら、ナシをクリックするヒトやら、クリックが分散してしまい、つまりSEO的によろしくないと言うことになるわけです。
SEO屋に何十万円、何百万円も支払う前に、こゆとこ気にするとよろしいのではないかと思いますので、紹介しておきます。
この度ご案内しますのは、ウェブサーバーがApache(アパッチ)、そのバージョンが2以降、という条件です。しかも、サーバーの貸し主が、「.htaccess」ファイルにアクセスすることを認めているということも条件です。
では、「.htaccess」ファイルを開いて、こんな3行。
- RewriteEngine on
- RewriteCond %{THE_REQUEST} ^.*/index.html
- RewriteRule ^(.*)index.html$ http://www.example.com/$1 [R=301,L]
阿呆みたいにコピーして貼り付ければ大丈夫です。 2行目なんかよくわからん記号がいくつも出て来ますが、正規表現で書いているだけですから、そのまま真似してください。ただし、「www.example.com」の部分はご自分でお使いのドメインに書き替えてください。
これで保存してアップロードすれば、あら不思議。
- 「http://〜〜/index.html」
にアクセスしても、
- 「http://〜〜/」
となります。最後のおまじない「[R=301,L]」が付いているのは、「永久に移動しました」という意味です。
無くても動くことは動きますが、行儀の良いまともな検索エンジンならば、その「永久に移動した」というメッセージを読み取って、「〜〜/index.html」を登録することを中止し、移動先として指定した「http://〜〜/」だけを登録するようになるわけです。
wwwアリナシ問題も同様に解決する
同様な問題として「www」アリとナシもありますが、同じ方法で解決できます。
- RewriteEngine on
- RewriteCond %{THE_REQUEST} ^.*/index.html
- RewriteCond %{HTTP_HOST} ^example\.com
- RewriteRule (.*) http://www.example.com/$1 [R=301,L]
- RewriteCond %{THE_REQUEST} ^.*/index.html
先に述べたように、2行目は正規表現なので、「.」(ドット)の前に「\」(バックスラッシュ)が入ったり、使うテキストエディタによっては「\」(バックスラッシュ)が「¥」(日本通貨¥マーク)になったり混乱すると思いますが、このままコピーして使えば大丈夫でしょう。
ただし、「www.example.com」はお使いのドメインに変更してください。でも、2行目の「.」(ドット)の前に「\」(バックスラッシュ)は必要なので、消さないようにする必要はあります。「example.co.jp」なら「^example\.co\.jp」となりますからね!
これで、めでたく、「www」ナシで
- 「http://〜〜/」
にアクセスしてきても、自動的に
- 「http://www.〜〜/」
に移動するようになるわけです。\(^O^)/
正規表現についての詳細は、グーグル先生に教えて貰ってください。
これ、自分でやればタダですからね!