サイトの常時SSL化が進む中で、以前wordpressで設定したサイトのSSL化することが増えてきました。 基本的には通常のSSL化と同じですが、wordpress特有の設定もあるので確認しておきたいところです。

  1. データベースのバックアップ
  2. サーバーでSSL設定
  3. WordPressの設定からURLを変更
  4. 内部リンクをSearch Regexで全て置換
  5. .htaccessにリダイレクト用のコードを追記
  6. SSLエラーのチェック
  7. テーマなどの設定を見直し
  8. 追記

1.データベースのバックアップ

データベースのバックアップは通常phpMyAdminから行います。 レンタルサーバーの機能でデータベースのバックアップ機能があれば、そちらの方が簡単にできます。

2.サーバーでSSL設定

レンタルサーバーごとに設定が違うので、レンタルサーバーの設定をご確認ください。

3.WordPressの設定からURLを変更

WordPressの管理画面の設定で、 Wordpressアドレス(URL)とサイトアドレス(URL)に記載されている URLの「http」部分を「https」に変更します。

4.内部リンクをSearch Regexで全て置換

Wordpressのプラグイン Search Regexを使って「http」部分を「https」に置換します。

(1)該当部分を検索

Search patternにhttp://を入力し、Searchボタンを押すと、該当部分が表示されます。

(2)置換の実行

Replace patternにhttps://を入力し、Replace & Saveボタンを押します。 置換が実行されます。サイトで確認してください。

5..htaccessにリダイレクト用のコードを追記

.htaccessに下記のコードを追加

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

ただ、コードの位置に注意してください。
最初に301リダイレクト処理を行う処理を書いてから、その次にWordPressの処理を書きます。
この位置を間違えると、正しくリダイレクトが行われません。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

6.SSLエラーのチェック

  • ブラウザのconsoleで確認しましょう。

7.テーマなどの設定を見直し

  • 読み込んだ外部ファイルは全てhttpsで始まるもの書き換える。
  • 子テーマのphpやcssを書き換え
  • ウィジェット、メニューバー、ヘッダー画像のURL書き換え
  • 各プラグイン中の自サイトのリンクを書き換え
  • SNSのリンクボタン

8.追記

  • テーマカスタマイザーやテーマの機能を使って、ロゴや背景画像をアップロードしている場合、画像のURLはhttpで表示されますが、再度アップロードしなおすとhttpsで表示されます。

前の記事 次の記事