motelogっていうブログで、重複URLの記事を読んで、index.html(index.php)
に関する正規化の内容を、もう少し詳しく知りたい。あわよくば、コードも教えて。
このような方に向け、記事を書きます。
重複URLの存在は、検索エンジンにとって、そして訪問者にとってもあまり良いものではありません。
重複URLの正規化にて、サイト評価とユーザビリティの向上を目的として、本記事ではindex.html(index.php)
の正規化について解説します。
index.html(index.php)の正規化【表示しなくてOK】
index.html
またはindex.php
は、主にサイトのトップページとして用いられます。
index表記はほとんどの場合、なし
そして、トップページについては、ほとんどがindex.html(index.php)表記なしです。
https://mote-log.com/
であり、indexはつきません。これは、indexについては自動的に見つけて表示してくれる機能があるからです。
URLは簡潔に短くした方がシンプルで望ましいと考えます。
index.html(index.php)を表示させない正規化を個人的には推奨しますが、
表示ありの方法についても、以下に解説します。
方法としては、.htaccess
の書き換えによる、301リダイレクトとなります。
.htaccessの場所がわからない方は、コチラの記事の真ん中あたりに書いているので参考にしてみてください。
index.htmlを表記なしでリダイレクトする方法
ここでは、当ブログのURLを例にしてみます。
- https://mote-log.com/index.html
- 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を正規化して統一する理由と方法【ペナルティを回避】
重複URLは放置しっぱなしだと検索エンジン(特にGoogle)やユーザにとって混乱を招き、使い勝手の悪いサイトだと評価されます。そうなるとペナルティを食らい、自サイトの評価が落ちる可能性も高まります。なので、速やかに重複URLの正規化を行いましょう。ここではその理由や方法について、解説しています。
また、301リダイレクトとは何かをご存じない方は、さらに以下の記事を紹介しますので、是非ご確認ください。
301リダイレクトとは【Webページの評価を下げない転送方法】
301リダイレクト(Permanent Redirect)を行うことで、ブログやホームページなどのWebページの評価を下げずに、ページ移転やパーマリンク変更が可能となります。それまでの苦労や手間ひまを無駄にせずに済みますね。高評価なページを移転・変更するときには必ず301リダイレクトをしましょう。
index.html(index.php)の正規化については、今回コピペした内容にて速やかに解決しちゃいましょう。
ご参考にしてみてください。