www有無・SSL(https)有無のリダイレクト書き方サンプルコード
投稿日:2017/11/08 (更新日:)
中古ドメインを利用する際もそうですが、URL正規化を行うことがサイト運用やSEO対策において求められます。
URL正規化が必要になる理由として、URLが異なると本来は同一のページであるのに別ページだと判断されてしまい評価が分散されてしまうからです。
また、評価の分散だけに留まらずミラーコンテンツなどと判断されてしまった場合はペナルティを受けてしまう可能性も含んでいます。
301リダイレクトを用いたURL正規化のパターン紹介
.htaccessを用いたURLの正規化の記述例を紹介します。
301リダイレクトを行うには「Apache(アパッチ)」というWebサーバーを利用している必要があります。
wwwありから「http://example.com」にする
RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.example\.com$ RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
「http://www.example.com」の状態の場合、「http://example.com」にリダイレクトするという記述になります。
wwwなしから「http://www.example.com」にする
RewriteEngine on RewriteCond %{HTTP_HOST} ^example\.com$ RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
「http://example.com」の状態の場合、「http://www.example.com」にリダイレクトするという記述になります。
wwwありから「https://example.com」にする
RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.example\.com$ RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
「http://www.example.com」の状態の場合、「https://example.com」にリダイレクトするという記述になります。
wwwなしから「https://www.example.com」にする
RewriteEngine on RewriteCond %{HTTP_HOST} ^example\.com$ RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
「http://example.com」の状態の場合、「https://www.example.com」にリダイレクトするという記述になります。
httpから「https://example.com」にする
RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
「http」の場合、「https://example.com」にリダイレクトするという記述になります。
httpsから「http://example.com」にする
RewriteEngine On RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
「https」の場合、「http://example.com」にリダイレクトするという記述になります。
index.htmlありから「http://example.com」にする
RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ http://example.com/$1 [R=301,L]
「index.html」の状態の場合「http://example.com」にリダイレクトするという記述になります。
「http://example.com/」の部分の記述を変更すれば、基本的には応用して利用できます。
URL正規化が必要な例
URL正規化が必要な一般的な例を紹介します。
あてはまる場合は、URL正規化を行ったほうがいいでしょう。
- 「index.html」の有無
- 「/」のURL末尾の有無
- 「www.」の有無
- 「http://、https://」暗号化の有無
が一般的に考えらえる、URL正規化が必要な例になります。
URLで例を示してみますと、
- http://example.com/index.html
- http://www.example.com/index.html
- http://example.com/
- http://www.example.com/
- https://example.com/index.html
- https://www.example.com/index.html
- https://example.com/
- https://www.example.com/
などの、URLのパターンが考えられます。
よくある例としては、
- index.htmlありから「http://example.com/」にする
- wwwありから「http://example.com/」にする
- wwwなしから「http://www.example.com」にする
- httpから「https://example.com/」に統一する
上記のパターンが一般的になります。
基本的な記述として、
- Options +FollowSymLinks
- シンボリックリンクファイルを認識させるかの設定、記述が不要の場合もある
- RewriteEngine on
- mod_rewriteを利用するときに使う宣言文
- RewriteCond
- URL書き換えを行う条件の指定になります
- RewriteRule
- 書き換えが行われる状態を記述します
細かい説明は省きますが、RewriteCondに動作が起こり得る条件を記述し、RewriteRuleに起こしたい動作を記述するということです。
中古ドメインの場合は過去の運用URLに統一する
中古ドメインの場合、過去に運用されていたURLを踏襲して利用することをオススメします。
過去の運用URLは当店の場合、商品リストにも記載しております。
基本的にサブドメインがあるか無しになり、サブドメインがある場合は「www」で運用されていたものを主に取り扱っています。
商品詳細ページに、「過去の運営URL」を記載していますので、中古ドメインを購入して利用する際は確認の上ご利用ください。
中古ドメインの場合でなくても、URLに違いが出ている場合は、サーチコンソールに異なるURLをすべて登録し、サイト設定から使用するドメインを設定し、メインとして利用するドメイン・URLをGoogleに伝えておきましょう。
その上で、設定したドメイン・URLに対して301リダイレクトを行い、URL正規化をしていきます。
正しいURLでサイト運用をしましょう
301リダイレクトでのURL正規化の方法、代表的な記述例を紹介しました。
URLの部分を書き換えて頂ければ、そのまま利用できると思います。
エックスサーバーなどの場合、サイト転送設定からリダイレクトを設定をすることも可能です。
どのような方法をとるにしても、自身のサイトのメインとして利用しているURL以外にも検索エンジンなどにインデックスされている場合や、中古ドメインを取得して利用する場合は、URL正規化を行って損はありません。
サイトの価値がドメインの価値にも繋がります、どちらの価値も分散せずに高めていくために正しいURLでのサイト運用を心掛けましょう!