最近Wordpressで作ってるこのブログをSSL化した。
SSLは「Let’s Encrypt」という無料の証明書を使って実現した。
いやー、素晴らしいですね、無料で使えるって。3ヵ月ごとに更新しなくちゃいかんけど、それくらいはたいした手間でもない。
で、SSL化の方法は他ブログに譲るとして、WordpressでSSL化するときの注意点がある。
以下のサイトが綺麗にまとめてくれてたので、要点はこのブログを見ればよい。
http://takacworks.com/archives/57
重要なのは、最後の
「http」を全部「https」に統一すること
という箇所。
これどうやってやるんだ?まさか全部手作業???
このブログでは、「wp_get_attachment_url」という関数を紹介してくれているが、これ追加しても実現できなかった。
とは言え、Wordpressの管理画面から投稿を1つ1つ修正するのはあまりにバカバカしい。
で、思いついたが、SQLでのDB直接編集。
WordPressをインストールしたことがある人ならわかると思うが、Wordpressを使うには最初にMySQLをインストールする必要がある。なので、DBにはMySQLを使ってる。ってことは、直接DBにアクセスしてSQL文でデータを一括Updateすれば良いってことだ。
(なお、ある程度DBの知識があることが前提。結果は自己責任で。)
やり方としては、コマンドラインからSQL文をたたいても良いけど、MySQL使ってればDBクライアントツール「phpMyAdmin」がインストールされてる(してる?)はず。ツール使った方が作業は楽。
あとは、以下のSQL文を実行すれば、一括で置換ができる。
(yourdomainは自分のサイトドメインに変えてね)
UPDATE wp_posts SET post_content=REPLACE(post_content,”http://yourdomain”,”https://yourdomain”);
いきなり実行するのは怖いと思うので、最初はwhere句で条件指定して、対象の1投稿だけで試しでやってみると良い。失敗したらえらいことだし。。
なお、外部サイトから参照してページ表示してる画像が「http」だった場合は、1つ1つ直していくしかない。これは仕方ないです。
(とは言え、一括置換でだいぶ労力は削減できると思う)
終わり。