WordPress サイトを常時SSL化

現在利用のドメイン http://www.example.com/ を常時SSL化 https://www.example.com/ すると、そのままでは https:// ではアクセスできません。SSL化後でも http:// でアクセス可能であればWordPress 管理画面の設定>一般設定から WordPress アドレス (URL) サイトアドレス (URL) にて設定変更できます。 https:// でしかアクセスできないと管理画面にもログインできなくなります。 アドレスとサイトアドレスをwp-config.phpで強制的に変更することができます。 下記のようにwp-config.phpファイルに追記します。

define(‘WP_HOME’, ‘https://www.example.com’); 
define(‘WP_SITEURL’, ‘https://www.example.com/wp’);

これでSSL化したサイトにアクセスできるようになったはずです。

画像などサイト内リンクが表示されない場合や全て正常に表示されているがブラウザのURL部に!マークが表示警告(このサイトへの接続は安全に保護されていません)されている場合は完全にSSL化できませんとなる場合は内部リンクが http:// のままになってますので修正が必要です。

WordPress文字列一括置する #

WordPressでは、MySQLというデータベースに投稿情報や設定情報が保存されており、画像のURLもデータベース上に登録されており、書き換える場合はデータベース上のURLを書き換える必要があります。 データベースに登録された文字列情報を書き換える方法としては、「データベースをSQL文で直接書き換える方法」と「プラグインで一括置換する方法」が良く利用されます。 データベースを直接扱えない場合や、プラグインではContact Form 7などの設定内容が消えてしまう場合があるようです。 PHPスクリプトを利用した方法を紹介します。

Database Search and Replace Script in PHP #

「Database Search and Replace Script in PHP」という専用の書き換えツールを下記からダウンロードします。

ダウンロードファイル(ZIP)を解凍すると、「Search-Replace-DB」というフォルダができます。
解凍したフォルダ「Search-Replace-DB」をFTPを利用して、サーバー内のWordPressインストール先にアップロードします。

Search-Replace-DBで文字列を一括置換 #

「https://www.example.com/Search-Replace-DB-Master」にアクセスします。
search-1
WordPressで利用しているMySQLデータベースの接続情報が自動で入力されます。 ここで、変更前の文字列と変更後の文字列を入力します。「dry run」ボタンで実行前の確認ができます。
search-2
変更対象のテーブル名とデータ数が表示されます。
search-3
確認が完了したら、「live run」ボタンを押して文字列置換を実行します。
search-4
文字列データが一括置換されました。
search-5

このツールをサーバに放置しておくと意図しない書き換えがされることが予想できます。必ず削除しましょう。
「delete」ボタンを押下してツールを削除します。

search-6
ツールが削除されると下記画面になります。ブラウザをリロードして404エラーページになることを確認してください。
search-7
最後にブラウザでサイトにアクセスして表示に問題の無いこと、アドレスバーに鍵マークが表示されていることを確認して完了です。

「.htaccess」にリダイレクトを追加 #

元から記述されているWordPress用のリダイレクトの上に「http」から「https」へのリダイレクトを追記

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

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Print Friendly, PDF & Email