WordPressでHTTPをHTTPSに強制リダイレクトする方法【プラグイン・手動両対応】
SSL証明書の導入は、終わりの見えない長い道のりに感じられることがあります。
やっとゴールが近づいたと思ったら、まだやるべきことが残っている——そんな経験はありませんか?
SSL証明書をインストールしたら、次はサイトのすべてのページに確実に適用されているかを確認する段階に入ります。ここで必要になるのが「HTTPSの強制リダイレクト」です。
多くのWebサイトでは、SSLの設定時に問題が発生します。一部のページで証明書が正しく有効化されておらず、それらのページに対してHTTPS(証明書)を強制的に適用する必要があるのです。
この記事では、その具体的な方法を詳しく解説します。
HTTPSの強制はトラブルの原因になることも知られていますが、ご安心ください。この記事では問題発生時のトラブルシューティング方法も紹介しています。このガイドに沿って進めれば、サイト全体をすぐにSSLで運用できるようになります。
TL;DR: サイト全体を最短でHTTPS化したいなら、「Really Simple SSL」プラグインをインストールして有効化するのが一番の近道です。すべて自動で動作するため、ほとんど手間がかかりません。万が一、HTTPS強制の過程で問題が発生した場合は、この記事のトラブルシューティングセクションに戻ってご確認ください。
SSL証明書はインストール済みですか?
WordPressでHTTPSを強制する前に、必ずSSL証明書がインストールされていることを確認してください。証明書をインストールする前に、強制用のプラグインを入れてはいけません。
実際に、SSL証明書をインストールせずにReally Simple SSLプラグインだけを有効化してしまった結果、サイトが壊れて管理ダッシュボードにアクセスできなくなったケースに遭遇することがあります。

そのため、次のセクションに進む前に、必ずサイトにSSL証明書がインストールされていることを確認しましょう。インストール方法については「SSL証明書のインストール方法」のガイドを参考にしてください。
WordPressでHTTPSを強制する2つの方法
WordPressにHTTPSを使用させる方法は、主に以下の2つがあります。
- プラグインを使ってHTTPSを強制する(簡単な方法)
- 手動でHTTPSを強制する(難しい方法)
それぞれの方法を詳しく見ていきましょう。
方法1: プラグインを使ってHTTPSを強制する(簡単な方法)
ステップ1: ステージングサイトを作成する
まず、本番サイトの完全な複製であるステージングサイトを作成します。ステージングサイト上であれば、プラグインがHTTPSを正しく強制できるかを安全にテストできます。
うまくいかなくても、本番サイトには一切影響しません。何が問題だったのかを切り分けて、ステージング環境で修正できます。修正後はステージングサイトを本番サイトにマージすれば、同じ作業を繰り返すことなく変更を反映できます。
→ まず、本番のWordPressサイトに「BlogVault Staging」をインストールして有効化します。
→ サイトのダッシュボードから「BlogVault」を選択します。
→ メールアドレスを入力し、「Get Started」をクリックします。

→ BlogVaultがアカウント作成を求めてくるので、パスワードを入力するだけでOKです。
→ BlogVaultダッシュボードで「Add」をクリックして、自分のサイトを追加します。

→ プラグインがサイト全体のバックアップを開始します。完了したら、BlogVaultダッシュボードで「Sites」をクリックし、対象のサイトを選択します。

→ 下にスクロールしてStagingセクションを見つけ、「Add Staging > Submit」を選択すると、BlogVaultがステージングサイトの作成を開始します。

→ ステージングサイトの準備ができると、ユーザー名とパスワードが発行されます。後で必要になるので、必ずメモしておきましょう。

→ 「Visit Staging Site」ボタンをクリックして、ステージングサイトを開きます。

→ ステージングサイトが新しいタブで開き、メモした認証情報の入力を求められます。

→ これでステージングサイトにアクセスできます。URLの末尾に「/wp-admin/」を追加するとログインページが開きます。
→ 本番サイトと同じ認証情報でログインしてください。

ステップ2: Really Simple SSLプラグインをインストールして有効化する
ステージングサイトにReally Simple SSLプラグインをインストールし、有効化します。
ステップ3: SSLを有効化する
有効化すると、まずバックアップを取るよう促されます(すでに取得済みなので問題ありません)。続いて「Go ahead, activate SSL」というボタンが表示されるので、クリックしてください。これでサイト全体にHTTPSが強制適用されます。

ステップ4: キャッシュをクリアする
サイトキャッシュとブラウザキャッシュをクリアします。手順については「WordPressのキャッシュクリア方法」のガイドを参考にしてください。
ステップ5: 全ページを確認する
ステージングサイトの全ページをチェックします。特に重要なのは、ログインページ・管理画面、お問い合わせページ、カートページ、サービス・商品ページ、アーカイブページ、重要なランディングページ、そして投稿記事です。
ページ数が多すぎて手動での確認が難しい場合は、以下のツールを使えば自動でチェックできます。SSL証明書が有効になっていないページがあれば通知してくれます。
- https://www.jitbit.com/sslcheck/
- https://www.sslchecker.com/insecuresources
- https://www.ssllabs.com/ssltest
- https://www.whynopadlock.com/
証明書が正しく強制されていない場合、混合コンテンツ(mixed content)、リダイレクトループ、ログイン・管理画面でHTTPSが無効といった問題が発生します。
幸い、テストサイトでは混合コンテンツの問題は発生しませんでした。

問題が見つかった場合も、慌てる必要はありません。解決策はあります。トラブルシューティングセクションに進んでサイトを修復しましょう。
修正が完了したら、ステージングサイトを本番サイトにマージします。
ステップ6: ステージングサイトを本番サイトにマージする
BlogVaultのダッシュボードを開き、Stagingセクションに移動します。「Merge」をクリックし、「Continue」を選択するとマージ処理が開始されます。(必要に応じて「ステージングサイトと本番サイトのマージ方法」のガイドも参照してください。)

これで完了です。サイト全体にSSL証明書が強制適用されました。
方法2: 手動でHTTPSを強制する(難しい方法)
推奨されるのはプラグインを使う方法です。自動化されているため、プラグインを有効化する以外にほとんど作業が必要ありません。
一方、手動の方法では、WordPressのバックエンドファイルの扱いにある程度慣れている必要があります。バックエンド操作に不慣れな場合、ミスを犯す可能性が高くなります。
残念ながら、小さなミスでも致命的な結果を招くことがあります。サイトが壊れて管理ダッシュボードへのアクセスを失うこともあり得ます。
はっきり言っておきますが、手動の方法はおすすめしません。ただ、どうしても挑戦してみたいという方は、以下の手順に従って進めてください。
プラグインなしでWordPressのHTTPSを強制するには、以下のステップを実行します。
ステップ1: サイトをバックアップする
以下の作業を始める前に、必ずサイトの完全なバックアップを取得してください。何か問題が起きたときに、すぐに元の状態へ復旧できます。これは、ベテラン開発者でさえ必ず行っている安全対策です。
バックアップサービスを利用していない場合は、WordPress向けのおすすめバックアップサービスを検討してみてください。
ステップ2: WordPressアドレスとサイトアドレスの設定を変更する
→ WordPressダッシュボードにログインし、「設定 > 一般」に移動します。
→ 「WordPress アドレス(URL)」と「サイトアドレス(URL)」を探します。
→ URLを https:// から https:// に変更します。
→ 変更を保存してウィンドウを閉じます。

ステップ3: サーバーにコードスニペットを挿入する
サーバーには主に2種類あります。
- Apache
- Nginx
挿入するコードスニペットは、ApacheサーバーとNginxサーバーで異なります。そのため、まず自分のサイトがどのサーバーでホストされているかを確認する必要があります。
> 自分のサイトはどのサーバーでホストされている?
ホスティング業者に問い合わせても構いませんが、もっと手っ取り早い確認方法があります。
→ 自分のサイトを開き、ウィンドウ内のどこかで右クリックして「検証(Inspect)」を選択します。下部にウィンドウが表示されます。
→ そのウィンドウで「Network」タブを選択し、次に自分のサイト名をクリックし、さらに「Header」をクリックします。

→ ヘッダーセクションを下にスクロールすると、サイトのサーバー情報が見つかります。

> Apacheサーバーにコードスニペットを挿入する
→ パソコンにFileZillaをダウンロードしてインストールします。
→ FileZillaを開き、ウィンドウ上部にFTP接続情報を入力します。FTP認証情報の調べ方については、ガイド記事や動画を参照するか、ホスティング業者に問い合わせてください。

→ 「リモートサイト(Remote site)」パネルにサイトのファイルやフォルダが表示されます。そこに「public_html」フォルダがあるはずなので、展開します。

→ 「public_html」フォルダの中に「.htaccess」ファイルがあります。右クリックして「表示/編集(View/Edit)」を選択します。

→ .htaccessファイル内に、以下のコードスニペットを挿入します。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
必ず「# BEGIN WordPress」と「# END WordPress」の間に挿入してください。

→ ファイルを保存して終了することを忘れないでください。
これで完了です。サイトにHTTPSが強制適用されます。
> Nginxサーバーにコードスニペットを挿入する
→ パソコンにFileZillaをダウンロードしてインストールします。
→ FileZillaを開いてFTP認証情報を入力します。FTP情報はホスティング業者から入手できます。見つけ方がわからない場合は、ガイド記事や動画の手順に従ってください。

→ 「リモートサイト」パネルにWordPressのファイルやフォルダが表示されます。「public_html」フォルダを見つけてクリックして展開します。

→ 「public_html」フォルダの中に「wp-config.php」ファイルがあります。右クリックして「表示/編集(View/Edit)」を選択します。

→ ファイル内に、以下のコードスニペットを挿入します。
server {
listen 80;
return 301 https://domain.com$request_uri;
}スニペット内の domain.com は、必ずご自身のサイトのURLに置き換えてください。
また、コードは「/* That’s all, stop editing! Happy blogging. */」という行より上に挿入してください。

→ ファイルを保存して終了します。
→ 次に、サイトキャッシュとブラウザキャッシュをクリアします。手順は「WordPressのキャッシュクリア方法」のガイドを参考にしてください。
→ サイトを入念にチェックします。重要なページとしては、ログイン・管理画面、お問い合わせページ、カートページ、サービス・商品ページ、アーカイブページ、主要なランディングページ、投稿記事などが挙げられます。
ページ数が多く手動での確認が難しい場合は、ツールを使ってHTTPSが正しく強制されているかをチェックしましょう。
- https://www.jitbit.com/sslcheck/
- https://www.sslchecker.com/insecuresources
- https://www.ssllabs.com/ssltest
- https://www.whynopadlock.com/
これらのツールは、SSL証明書が反映されていないページがあれば通知してくれます。
通知があったとしても、慌てる必要はありません。解決策があります。トラブルシューティングセクションに進んでサイトを修復しましょう。
すべて問題なければ、次のセクションに進んでください。
各種WebサービスのURLを更新する
Google Analytics、Search Console、CDN、SNSなど、さまざまなWebサービスを利用している方が多いでしょう。HTTPSへの移行後は、登録しているすべてのアカウントのURLを更新しないと、サービスが正常に動作しなくなることがあります。
→ サイトマップを更新する: 通常、Yoast SEOのようなSEOプラグインはサイトマップを自動的に更新してくれます。更新されない場合は、WordPress管理画面にログインし、「SEO > 機能 > XMLサイトマップ」でサイトマップを一度無効化してから再度有効化してください。これにより、新しいURLでサイトマップが再生成されます。

→ GoogleサービスのURLを更新する: Google AnalyticsはHTTPとHTTPSを別々のサイトとして扱うため、Analytics側でサイトのURLを更新する必要があります。Analyticsアカウントにログインし、「管理 > プロパティの設定 > デフォルトのURL」に移動して、URLの前のドロップダウンメニューからHTTPSを選択してください。

Google Search Consoleでは、HTTPS版を新しいプロパティとして追加する必要があります。その後、更新したサイトマップをSearch Consoleにアップロードしましょう。

→ CDNを更新する: 多くのCDNにはURLを変更できる機能が組み込まれています。もし該当機能がない場合は、CDNのサポートに問い合わせるのが得策です。
→ SNSアカウントを更新する: 各ソーシャルプロフィールに登録しているサイトURLも最新の状態に保つようにしましょう。
HTTPS強制によって起こる問題のトラブルシューティング
WordPressサイトでHTTPSを強制する際、次の3つの問題のいずれかに遭遇する可能性があります。
- ログイン・管理画面でSSLが無効
- 鍵マークが壊れている、または警告表示が出る(混合コンテンツ問題)
- リダイレクトループ
それぞれの対処法を見ていきましょう。
1. ログイン・管理画面でSSLが無効
ログインページや管理画面に「保護されていない通信(Not Secure)」という警告が表示されていませんか?
これは、SSL証明書が正しく設定されていない場合に発生します。

SSL証明書なしのままログインを続けると、認証情報がハッカーに盗まれた場合に悪用されやすくなります。 such a disaster happens前に、ログインページと管理画面にHTTPSを強制適用しましょう。
具体的な方法については「WordPressログインが保護されていない場合の対処法」の記事を参考にしてください。
2. 鍵マークが壊れている・警告表示が出る(混合コンテンツ問題)
SSL証明書に警告マークが表示されていませんか?
これは混合コンテンツ(mixed content)問題によるものです。つまり、HTTPSを使用していないWordPressプラグインやテーマ由来のリンク、画像、スクリプト、スタイルシートが混在している状態です。
サイトに混合コンテンツがあるかどうかを確認するには、WhynopadlockやJitbitなどのSSLチェッカーでサイトを診断するのが手軽です。あるいは、以下の手順で手動確認もできます。
1. サイトを開き、右クリックして「検証(Inspect)」を選択します。

2. 下部に小さなウィンドウが表示されるので、「Console」タブを開くと、混合コンテンツの警告と、その発生源に関する詳細が表示されます。
たとえば、WordPressのプラグインやテーマが原因になっているケースがあります。

また、サイト上の画像が原因の場合もあります。

この問題を解消するには、「WordPressで混合コンテンツを削除する方法」のガイドを参考にしてください。
3. リダイレクトループ
サイトが延々とリダイレクトされ続けていませんか?
リダイレクトループが発生する原因はいくつかあります。
- WordPressアドレス・サイトアドレスの設定が間違っている
- .htaccessファイル内のリダイレクト指示が誤っている
- SSL証明書をインストールせずにHTTPSを強制している
- リダイレクト系プラグインとの設定競合
このガイドの手順を慎重に守っていれば、最初の3つの原因は考えにくいですが、念のため実施した手順をもう一度見直してみてください。重要な変更である以上、小さなミスがリダイレクトループにつながることがあります。
問題なければ、犯人はサイトのリダイレクト系プラグインである可能性が高いです。無効化を試してみましょう。
リダイレクトループが発生していると管理ダッシュボードにアクセスできないため、FTP経由でプラグインを無効化する必要があります。
→ FileZillaを開き、「public_html > wp-content > plugins」フォルダに移動します。

→ インストール済みのリダイレクトプラグインを選択し、右クリックして「名前変更(Rename)」を選びます。フォルダ名の末尾に「.deactivate」を追加するだけで、プラグインが無効化されます。

→ 次にキャッシュをクリアし、サイトがまだリダイレクトを繰り返していないか確認します。うまく解決していれば完了です。解決しない場合は、WordPress公式サポートフォーラムや、WordPress Experts、WPCrafter、WPSecureなどのFacebookグループで相談してみてください。
それでも解決しない場合は、開発者に調査を依頼するのも一つの手です。依頼先は信頼できるサービスから選びましょう。
- WordPress Jobs
- Smashing Jobs
- Codeable.io
- WPMU Dev Pros
- StackOverflow Careers
以上が、WordPressでHTTPをHTTPSに強制リダイレクトする方法です。このガイドがわかりやすく役立つものであったなら幸いです。
次にやるべきこと
このガイドに沿って作業を進めれば、WordPressサイト全体にHTTPSを強制適用できたはずです。
しかし、サイトをHTTPS化しただけでは、ハッカーやボットからの攻撃を完全に防ぐことはできません。他の能動的なセキュリティ対策も併せて講じる必要があります。
WordPressサイトにとって最も重要なセキュリティ対策は、信頼性の高いセキュリティプラグインを導入することです。
優れたセキュリティプラグインは、以下のような対策によってサイトを保護してくれます。
- ファイアウォールとログイン保護機能により、悪意のあるトラフィックのアクセスをブロックする
- 毎日自動でサイトをスキャンする
- 感染したサイトを短時間で徹底的にクリーンアップする
- サイトのハードニング(強化)対策の実施を支援する
MalCareセキュリティサービスでサイトを守りましょう。
-
WordPressで未使用のCSSを削除(または遅延読み込み)してサイトを高速化する方法
WordPressサイトから未使用のCSSを削除して、ウェブサイトをもっと速くしたいと思いませんか? ウェブサイト最適化の重要な目標のひとつは、不要なコードを取り除くことです。これによりページ全体のサイズが減り、読み込み時間が短縮され、訪問者により快適なユーザー体験を提供できます。 ページサイズを大きく削減できる分野のひとつが「スタイリング」です。ウェブサイトのスタイリングは、HTMLやJavaScriptと並ぶWebの中核技術であるCSS(Cascading Style Sheets:カスケーディングスタイルシート)と呼ばれるルールベースの言語によって制御されています。 CSSは、ページの色
-
WordPressへのブルートフォース攻撃からサイトを守る9つの対策【徹底解説】
WordPressへのブルートフォース攻撃は、攻撃が成功する前からサイトに深刻な負担をもたらします。 多くのサイト管理者は、サーバーリソースが急速に消耗し、サイトが応答しなくなったり、最悪の場合クラッシュして正規ユーザーまでログインできなくなるという事態に直面します。ブルートフォースボットがログインページに殺到し、wp-adminへの侵入を試み続ける様子を目の当たりにすると、何もできない無力感を覚えるかもしれません。 しかし、あなたは決して無力ではありません。特定のユーザーに対して複数のIPアドレスから失敗したログイン試行が繰り返されているのに気づいたら、この記事はまさにそのためにあります。