メニュー
【SSL証明書】FAQ/情報

HTTP→HTTPSリダイレクトとは?301設定・www統一・ループ対処

ページ更新日:2026/07/04

HTTP→HTTPSリダイレクトとは、http:// でアクセスしてきた利用者を、自動的に https:// の同じページへ転送する仕組みです。
SSL証明書を入れただけでは http:// でもページが表示できてしまうため、リダイレクトを設定してすべてのアクセスをHTTPSに一本化する必要があります。
サイト全体をHTTPSに統一する「常時SSL」の入口となる設定で、当社のSSL証明書インストールチェッカーでも「HTTP→HTTPSリダイレクト」の項目として判定しています。

なぜHTTP→HTTPSリダイレクトが必要か

301と302の違い(なぜ301を使うのか)

リダイレクトには恒久的な 301(Moved Permanently) と一時的な 302(Found) があります。
HTTP→HTTPS化は「今後はずっとHTTPS」という恒久的な移行なので、必ず301を使います
302を使うと検索エンジンが「一時的な転送」と解釈し、http:// 側のURLをインデックスに残し続けるため、SEO評価がHTTPSに移りません。

ステータス 意味 HTTPS化での使用
301 恒久的な移動。評価(リンクジュース)を転送先に引き継ぐ ✓ こちらを使う
302 一時的な移動。元URLを残す × 使わない

サーバー別の設定方法

Apache(バーチャルホスト)

ポート80のバーチャルホストで、素直に Redirect を使う方法が最もシンプルで安全です。

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    Redirect permanent / https://example.com/
</VirtualHost>

mod_rewrite を使う場合は次のようになります(.htaccess でも可)。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Nginx

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

return 301rewrite より高速で推奨されます。

IIS(web.config / URL Rewrite)

<rule name="HTTP to HTTPS" stopProcessing="true">
  <match url="(.*)" />
  <conditions>
    <add input="{HTTPS}" pattern="off" ignoreCase="true" />
  </conditions>
  <action type="Redirect" url="https://{HTTP_HOST}/{R:1}"
          redirectType="Permanent" />
</rule>

URL Rewrite モジュールのインストールが必要です。redirectType="Permanent" が301に相当します。

wwwあり/なしの統一(URL正規化)

HTTPS化とあわせて、www.example.comexample.com のどちらかに統一しておくと、評価の分散や証明書エラーを防げます。
リダイレクトは「HTTP→HTTPS」と「www統一」を2段に分けず、最終的なURLへ一度で飛ばすのが理想です(リダイレクトの多段連鎖はSEO・速度に不利)。

# Nginx:www を付けない形に統一する例
server {
    listen 443 ssl;
    server_name www.example.com;
    return 301 https://example.com$request_uri;
}

www.example.com でもHTTPSでアクセスされ得るため、証明書のコモンネーム/SANに www あり・なしの両方を含めておく必要があります(マルチドメイン証明書、または example.comwww.example.com を両方登録)。

リダイレクトループの原因と対処

「このページは正しく動作していません(ERR_TOO_MANY_REDIRECTS)」が出る場合、HTTPS→HTTPS の無限ループが発生しています。ロードバランサーやCDN(Cloudflare等)でSSLを終端している構成で特に起きがちです。

# Apache(プロキシ/ロードバランサー配下)
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

※ Cloudflareを使う場合は、SSL/TLSモードを「フル」または「フル(厳格)」にし、「Flexible」を避けるとループを防げます。

HSTSでリダイレクトを補強する

301リダイレクトは「最初の1回だけ http:// にアクセスが飛ぶ」隙が残ります。HSTS(HTTP Strict Transport Security)を設定すると、ブラウザが2回目以降は最初からHTTPSで接続するようになり、リダイレクト前の平文アクセス自体をなくせます。
301リダイレクト+HSTSをセットで設定するのがベストプラクティスです。サイト全体のHTTPS化の考え方は常時SSL(Always On SSL)もご参照ください。

SSLチェッカーでの確認方法

当社のSSL証明書インストールチェッカーにドメインを入力すると、「HTTP→HTTPSリダイレクト」の項目で判定結果が表示されます。

コマンドで確認する場合は curl -I http://example.com/ を実行し、HTTP/1.1 301 Moved PermanentlyLocation: https://example.com/ が返るかを見ます。HTTPS化後にページ内の画像・CSSが http:// のままだと鍵マークが出ないことがあります(混在コンテンツを参照)。

📌 関連ページ:
常時SSL(Always On SSL)とは?設定手順・メリット
HSTS(HTTP Strict Transport Security)とは?設定方法と注意点
混在コンテンツ(Mixed Content)の原因と解消方法
SSL証明書インストールチェッカー