前回までの記事
【サイトをHTTPS化①】SSLサーバ証明書の登録(さくらインターネット)
【サイトをHTTPS化②】安全な接続(緑の鍵マーク)に向けてコンテンツを修正
【サイトをHTTPS化③】.htaccessファイルでHTTPからHTTPSにリダイレクト
に引き続き、今回はHTTPS化の途中で、リダイレクトしたら文字化けやサーバーエラーが起きた場合の修正方法や、自サイトの階層下でWordPressブログを運営している場合の設定方法をご説明します。
エラーの修正
htaccessリダイレクト設定をした後や、サイト階層下でWordPressブログを運営していて文字化けや505サーバーエラーが起きた場合の原因は、サーバー側の設定、.htaccessファイルの記述、HTMLファイルの記述のいずれかがHTTPS対応になっていないことが多いです。
これが中々面倒ですが、根気よく確認していってみましょう。
私も片っ端からエラーでつまづいたので、仕事の合間にちょこちょこ直して4日くらいかかっちゃいました。
リダイレクトが効いてない
全くリダイレクトが働かない場合は、.htaccessファイルの記述自体が間違っているか、自サイトが建っている場所(サーバー)と記述したコードが適合しておらず転送が動作していない可能性が高いです。
大体のサーバーでは同じコード記述で同じように挙動するのですが、サーバーによっては多少記述を変更する必要があるため、どうしても上手くいかない場合は、契約しているレンタルサーバーのサポート窓口に問い合わせてみてください。
リダイレクトは効くが文字化けする
リダイレクトしてHTTPSページにアクセスすると文字化けが発生する場合、一番可能性が高いのは、全てのページにUnicode以外の文字コードが設定されており、ブラウザの最新バージョンやサーバー側の設定とズレが生じるせいです。
基本的に現在のサーバーやブラウザはUnicode(UTF-8)を設定していることが多いため、自分がサイトのHTMLファイル内などにShift-JISなどを設定していると文字化けが生じます。
文字コードについて詳しくはUnicode絵文字と日本の文字コードについてをご覧ください。
テキストエディタでサイトの全てのページの文字コードがUnicode(UTF-8)に指定されていることを確認しましょう。
Shift-JISになっている場合はUTF-8に書き換えてください。
同じくファイルの文字コード指定もUTF-8N、もしくはUTF-8になっていることを確認します。
サーバーエラー505などが出てアクセスできない
リダイレクトするとサーバーエラーのメッセージが出てHTTPSページにアクセスできない場合、サーバーのデータベース設定が【HTTPS】ではなく【HTTP】のままになっているせいかもしれません。
サーバーコントロールパネルのデータベースからサイトURLの箇所を【https://~】の記述に直しましょう。
phpMyAdmin(ピーエイチピー マイアドミン)にログインして設定します。
ログインユーザー名とパスワードはMySQLユーザー名とパスワードです。
Usersとoptions、それぞれでサイトのURL記述をHTTPSに修正します。
サイトの階層下で運用しているWordPressの .htaccessファイルを修正
こんな状態で、自サイト内の階層下でwordpressを使っている場合、.htaccessファイルの内容が一部重複しているせいでエラーが起きることがあります。
Wordpress側の.htaccessファイルに重複しているリダイレクトの記述や、および不要なキャッシュ制御の記述がある場合は該当箇所のみ削除してください。
WordPressに常時SSL化のプラグインを入れる
自サイトの階層下でWordPressを使っている場合で、上記の全てのエラーが修正できたら、WordPressをSSLに移行する(HTTPS化する)ためのプラグインが色々提供されているので、お好みに合わせてインストール&有効化・設定して使ってみてください。
私は Really Simple SSL を入れています。
プラグインを有効化すると、その後のリンク記述などは自動でHTTPSになりますが、以前の記事に挿入した画像リンクやURLリンクはそのままになっていることがあるのでリンク切れチェックのプラグインなどで確認して、のんびり地道に修正しましょう。
特定のブラウザでだけ表示されない場合
各ブラウザでHTTPSへのリダイレクトを確認していて、特定のブラウザのでだけ表示されないことがあります。
特にWindowsパソコンや、古いバージョンのMac OSで確認作業をしている場合には、Safariではほぼ確実にページが表示されません。
暗号化通信とかセキュリティ通信の安全性が高いTransport Layer Security(トランスポート・レイヤー・セキュリティ、TLS)が古いバージョンのままのブラウザでは、安全性が確保されないからページ表示しない、という状態です。
経済産業省が『TLSの最新バージョンの1.2以前のブラウザはセキュリティ上の脆弱性があるから非推奨!!』というお触れを出しているため、お上に逆らえないサーバーもブラウザも私達も、全員がこればっかりはどうしようもありません。
TLS 1.2以降に対応してるブラウザの最新バージョンを使うんでお許しくだされ…と、お上に平伏しながらブラウザを最新バージョンに変えるくらいしか出来ることはありません。
旧バージョンのブラウザを使っている場合は、この機会に最新のバージョンにアップデートしてみてください。
関連記事
【サイトをHTTPS化①】SSLサーバ証明書の登録(さくらインターネット)
【サイトをHTTPS化②】安全な接続(緑の鍵マーク)に向けてコンテンツを修正
【サイトをHTTPS化③】.htaccessファイルでHTTPからHTTPSにリダイレクト
【サイトをHTTPS化④】リダイレクト後のエラー修正・階層下のWordPress設定(この記事です)
【サイトをHTTPS化⑤】HTTPSサイトをSearch Consoleに登録
【サイトをHTTPS化⑥】混在コンテンツを探す