HTTPSをHTTPに301リダイレクトで正規化する方法

[対象: 中級]

httpsのURL

この記事では、SSLで暗号化されたHTTPSのアクセスを、通常のHTTPのアクセスに301リダイレクトリダイレクトで正規化する方法を説明します。

http:// で始まるURLでしかサイトを公開していないはずなのに、なぜか https:// で始まるURLがインデックスされてしまうことがあります。

最近も、英語版日本語版のGoogle公式ヘルプフォーラムで、HTTPSのページがインデックスされてしまいその対処方法を求める投稿を見かけました。

このままの状態では、重複コンテンツが発生する原因にもなりえます。
また一部のブラウザでは、セキュリティ警告のメッセージが出てきてユーザーを戸惑わせることがあるかもしれません。

HTTPSをまったく使わないのであれば、もっとも適切な解決策は301リダイレクトでHTTPに正規化することです。

.htaccessでの301リダイレクトを使ったHTTPSとHTTPの正規化

HTTPSをHTTPにすべて301リダイレクトするには、.htaccessに以下のように記述します。

RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

※「www.example.com」は自分が管理するドメインに置き換える

このように書いておくと、HTTPSを利用したURLでアクセスした場合は、HTTPに転送できます。

301リダイレクトが使えない場合はrel=”canonical”

.htaccessファイルを編集できる権限がないなど、301リダイレクトを使えない環境ではrel=”canonical”タグを用いて http:// のURLを指定し正規化します。

ただし、rel=”canonical”は検索エンジンに対してのみ意味を持ちます。
インデックスが http:// に統一されるだけです。

ブラウザのURL、すなわちユーザーは依然として https:// で始まるURLにアクセスします。

URL削除ツールを使ってはいけない

HTTPSのURLが予期せず検索結果にインデックスされてしまったとします。

一刻も早く検索結果から消したいという思いで、ウェブマスターツールからURL削除ツールを使って削除リクエストしてはいけません。

通常の http:// のURLも同時に消えます。

正規化を処理した後は、再クロールと再インデックス、そしてその後の再処理を待ちます。
そのページのクロール頻度によって処理が完了する時間はまちまちです。

リダイレクトを設定できたのであれば、ユーザーはHTTPでアクセスするので心配はいりません。

頻繁に起こることでは決してありませんが、使っていないHTTPSが自分のサイトで万が一インデックスしまったり、クライアントや知り合いからこういったトラブルの相談を受けたりしたときに、思い出してください。