面倒で長い間放置していたメインサイトのhttps化をやりました。(このブログじゃないです。)作業自体は思ったよりもあっさりと終わりましたが、想定外の面倒もありました。
httpsだよー
冒頭の画像はChromeの状態で、上の画像はFirefoxでの状態です。ちゃんとhttpsになってますし、混在コンテンツもできるだけ解決したはずです。全部見たわけじゃないのでまだ残ってる可能性はけっこうあるんですが。
やったことと面倒だったこと
基本的には以下のページを見てその通りにしただけです。
だいたいはうまくいったのですが、ここに書かれていないことで困ったのが2つありました。
エンドレスリダイレクト
まずは試しということもあって、「さくらレンタルサーバー」で作っていたWordpressのサイトをhttps化してみました。それ自体はすんなりいったのですが、httpからhttpsへの301リダイレクトを設定しようとしたら、サイトが表示されません。なんかリダイレクトが無限ループしているとかでエラーページになります。
で、それは「さくらのレンタルサーバ 簡単SSL化プラグイン」というプラグインを使えば、自分でリダイレクト設定しなくてもいいんですが、そのプラグインが有効化できませんでした。
その原因はPHPのバージョンが低かったことでした。さくらレンタルサーバーの設定メニューからPHPのバージョンを最新のものに変えたらあっさり有効化できました。あとはそれにまかせればリダイレクト設定も完了です。
…このあたりの、PHPバージョンが低くて有効化できないとか、ちゃんとプラグインのQ&Aに書いてあったんですけどね…ちゃんと読まないから…。
memory sizeエラー
つづいてメインサイトであるorefoder.netのほうです。こちらもだいたいはうまくいったのですが、混在コンテンツの解決のためにSearch Regexというプラグインを使って置換しようとした時に問題が。
Fatal error: Allowed memory size of
みたいな表示が出て、置換できませんでした。メモリー不足…?
いろいろ調べたり対処しようとしたのですが、うまくいかず。最終的に条件を絞り込んで該当箇所が少なくなるようにしました。「http://www.orefolder.net」で検索しようとしていたのを「src=”http://www.orefolder.net」と絞るようにして少しでも対象を減らした、ということです。
これでなんとか解決しました。やれやれ。
あと、私のサイトはカスタム投稿タイプをたくさん使っていたのですが、Serch Regexは通常状態ではカスタム投稿タイプが対象外となっていました。これはSerch Regex内のpost_content.phpを少しいじることで対処できました。
post_content.php内の以下の箇所、
$sql = "SELECT ID, post_content, post_title FROM {$wpdb->posts} WHERE post_status != 'inherit' AND post_type IN ('post', 'page') ORDER BY ID ".$orderby;
この(‘post’, ‘page’)の部分を対象となるカスタム投稿タイプのスラッグに変更すればOKです。
とりあえず完了
思ったよりも簡単に終わりました。ただ混在コンテンツを解決する過程で、あぁここも変えなきゃなのか、あ、これもなのか…とどんどん変更箇所がでてくるのはまいりました。まぁ既にその道を通った先人たちの残した記事のお陰でなんとかなりましたが。
とりあえず面倒事が1つ片付いて良かったです。まぁ、厳密に見ればまだ混在コンテンツが残っている可能性はあるのですが、アクセス数の多い記事トップ30くらいは自分で確認しているので、たぶん影響は少ないでしょう。
やっぱり、これまでの積み重なったコンテンツが多いほど大変ですね。はてなブログのhttps化もひかえていますが、こちらはまぁ期間長くないブログですので、簡単に終わりそうです。
はー、疲れた。