Written by Shoji

Shoji

index.htmlやindex.phpをリダイレクトで正規化する方法

SEO

悩む人

サイトのwww表記有無に悩む人「motelogっていうブログで、重複URLの記事を読んで、index.html(index.php)に関する正規化の内容を、もう少し詳しく知りたい。あわよくば、コードも教えて」

このような方に向け、記事を書きます。

重複URLの存在は、検索エンジンにとって、そして訪問者にとってもあまり良いものではありません。

重複URLの正規化にて、サイト評価とユーザビリティの向上を目的として、本記事ではindex.html(index.php)の正規化について解説します。

index.html(index.php)の正規化【表示しなくてOK】

PCでコードを打ち込んでいる状況

index.htmlまたはindex.phpは、主にサイトのトップページとして用いられます。

HTMLとPHPについては、ご自身のサイトがどういった環境で構築されているかによって選択してください。ワードプレスならば、PHPですね。

index表記はほとんどの場合、なし

そして、トップページについては、ほとんどがindex.html(index.php)表記なしです。

このブログのトップページは、https://mote-log.com/であり、indexはつきません。

これは、indexについては自動的に見つけて表示してくれる機能があるからです。

URLは簡潔に短くした方がシンプルで望ましいと考えます。
index.html(index.php)を表示させない正規化を個人的には推奨しますが、
表示ありの方法についても、以下に解説します。

方法としては、.htaccessの書き換えによる、301リダイレクトとなります。
.htaccessの場所がわからない方は、コチラの記事の真ん中あたりに書いているので参考にしてみてください。

index.htmlを表記なしでリダイレクトする方法

ここでは、当ブログのURLを例にしてみます。

  1. https://mote-log.com/index.html
  2. https://mote-log.com

上記の1番(indexあり)を、2番(indexなし)に、リダイレクトし、正規化します。


<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ https://mote-log.com/$1 [R=301,L]
</IfModule>

index.phpを表記なしでリダイレクトする方法

先ほどのコードのうち、htmlをphpに書き替えればOKです。


<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ https://mote-log.com/$1 [R=301,L]
</IfModule>

index表記ありでリダイレクトする方法

以下の通りになります。


<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ /index.html [R=301,L]
</IfModule>

場合に応じて、index.htmlをindex.phpに書き替えてください。

301リダイレクトをマスターしよう

今回紹介したように、重複URLには、301リダイレクトの機能が欠かせません。

今回以外にも、重複URLのパターンが存在します。

下記記事にて紹介しているため、一読していただき、未対策の場合はURL正規化の対応に移りましょう。

また、301リダイレクトとは何かをご存じない方は、さらに以下の記事を紹介しますので、是非ご確認ください。

index.html(index.php)の正規化については、今回コピペした内容にて速やかに解決しちゃいましょう。
ご参考にしてみてください。