.htaccessでhttpからhttpsへ301リダイレクト

.htaccessでhttpからhttpsへ301リダイレクト

2014年8月7日にGoogleがHttpsをSEOの評価項目にすると発表しました。

Google ウェブマスター向け公式ブログ: HTTPS をランキング シグナルに使用します

このため、httpからhttpsへの変更を考えているWEB担当者も多いと思います。

Apacheサーバーで、.htaccessmod_Rewriteが使える場合のリダイレクト方法を書いていきます。

スポンサーリンク

サイトをhttpからhttpsにする方法

まずhttpsを有効にするために、SSLを導入します。

導入の仕方は以前書いたこちらを参照

次に、httpへのアクセスを.htaccessを使い強制的にhttpsへ301リダイレクト

単純なリダイレクトではなく、301リダイレクトにすることが肝心です。

http://sample.com と https://sample.comは一緒のページが表示されますが、Googleは別のページと認識しています。

そのため、ただのリダイレクトだと今までGoogleが評価していたものを放棄することになってしまいます。

では、httpからhttpsへのリダイレクト方法です。

.htaccessに以下の記述をすればOKです。

.htaccessへの記載内容の説明

RewriteEngine on

リライト機能をOnにします。

RewriteCond

リライトのルールを適用する条件を記載します。上記の%{HTTPS} off はhttpsではない場合を意味します。

書き方は、RewriteCond %{変数名} 正規表現 [オプション] です。

RewriteRule

リライトのルールを記載します。ここに記載したURLにリダイレクトします。

RewriteRuleの意味は以下のようになります。

RewriteRule (正規表現A) (置きかえるURL) [オプション]

上の例だと、 (正規表現A)の部分が、 ^(.*)$ です。

  • ^は行の先頭
  • .は任意の一文字
  • *は直前の文字を0回以上繰り返す
  • $ は行末を意味します。

つまり行の先頭から、行末まで任意の1文字が無限に繰り返される、いわば何にでもマッチする正規表現と思って下さい。

$1は(正規表現A)にマッチしたURLを表示します。

ただし、$1で表示するのは、ドメイン以降のURLなので、https://sample.com/$1といった形式でhttps://sample.comをいれます。

[R=301,L] は、Rはリダイレクト、Lはここで書換のルールは終了(Last)の意味です。

Rだけだと、302(一時的なリダイレクト)なので、必ず =301 をつけて今までの評価も持って行きましょう。

スポンサーリンク

シェアする