WP内のリンク記述をSearch Regexですべてhttpsに置換する
すべてのアクセスをhttpsのプロトコルに集約する作業のつづき。
つぎにやることは、WPの内部にある自己ドメイン(sampo-shippo.net)にかんするリンクの記述を、httpからhttpsに書き換えることだ。これは、わいひらさんの記事で紹介されているやり方にしたがって、プラグインSearch Regexをつかって実施した。
Search Regexはここ2年ほど更新が止まっているようだったので不安だったが、ぼくの環境ではちゃんと動いてくれた。http://sampo-shippo.net/を検索して、https://sampo-shippo.net/に置換するようにセットする(詳しいやり方は、先述のわいひらさんの記事をご参照ください)。
すると置換する候補のリストが表示される。これを目視で確認する作業をていねいにおこなうのがポイントだ。今回はとくに問題なし。Replace and Saveのボタンを押すと、すぐに完了した。
注意すべき点は二つだ。
- ウィジェット内にあるテキスト中のタグはSearch Regexでの置換対象外になるので、ここは直接チェックして、必要があれば修正をしておく。
- 同様に、ヘッダーのロゴ・ファイルもSearch Regexの置換対象にならないので、https化したあとにあらためてCocoonの設定画面から読み込みなおす。
正しく作業がなされていれば、WPにかんしては、これでhttpsに一本化されたことになる。
httpをhttpsに301リダイレクトする
つぎに、外部からのhttpによるアクセスにたいし、httpsへ301リダイレクト(恒久的転送)するためのコードを、.htaccessに追記する。
まず、FTPでサーバーにアクセスして.htaccessをダウンロードする。いうまでもなく、.htaccessは不可視ファイルなので、もし見あたらなければ、FTPクライアントソフトの設定を確認して、「不可視ファイルを見えるようにする」などの項目をチェックするなりしてあげる必要がある。
エックスサーバーにHTMLサイトを構築しているケースでは、.htaccessはpublic_htmlフォルダ直下に置かれている。これをローカルにダウンロードする。.htaccessファイルは重要なので、万が一トラブルがあったときに元へ戻すことができるよう、必ずコピーして保存しておくことが推奨されている。
ダウンロードした.htaccessに以下のコードを追記する。ぼくは、.htaccessの冒頭部分に追記しておいた。使用したのは以下のコードである。
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>
追記の済んだ.htaccessファイルを、あらためてpublic_htmlディレクトリ直下(元の.htaccessがあったのと同じ場所)にアップロードする。
完了後にブラウザから確認してみよう。httpで始まる元のURLでアクセスしても、httpsに転送されるようになっているはずだ。
既存HTMLサイトとWPは依然として併存
ただし、現時点で達成されたのは、あくまで、つぎの2点だけだ。すなわち、第一に、WPについてhttps化が完了したことと、第二に、外部からのアクセスにたいしてhttpからhttpsへプロトコルが切り替わったこと、の2点である。
依然としてサーバー上では、既存HTMLサイトとWPが併存し、かつ既存HTMLサイトのほうが優先されたままの状態であることに変わりはない。
いいかえるなら、httpで始まるドメインURL(http://sampo-shippo.net/)でアクセスすると、https://sampo-shippo.net/へ転送されるものの、ブラウザには既存HTMLサイトのトップページ(index.html)が表示される状態だということである。もちろん最初からブラウザにhttpsでドメインURLを打ち込んでアクセスしても同様だ。
したがって、つぎのステップでは、ドメインURLのアクセス先を、既存HTMLサイトからWPのほうへ切り替えてあげる必要がある。