お役立ちサイト お知らせ ブログ

ブログをhttpsに移行する方法【エックスサーバーの場合】

2017年9月21日

「https化しないと君のサイトを”危険なもの”として全世界に知らしめるよ」

 

といった旨の通知(意訳)が、宛にGoogleから何度か届いていました。

何度かスルーしていたですが、2017/9/19、ついにhttps化に踏み切りました。

 

何回かGoogleからメールで通知が来ていたのですが、いまいち調べてもよくわからず、なおかつ

ブログのURLを変更する=下手したらアクセスが激減するのでは?

という不安があったため、後回しにしていました。

 

色んなサイトを見て回っても、半数以上は「いずれはやった方がいいけど、今焦ってやることにはあまりメリットはない」と書いてあったこともあります。

でも、ついにやりました。

 

やり方を紹介しますが、ミスるとサイトが真っ白になるような作業部分もあるので、自信がない方はやめておきましょう。自己責任でお願いします…。まあ、自己責任にできない人はブログとかサイトやってけないと思いますが。

※httpsって何?という方は注意。

 

また、2017/9現在でも、まだ完全なhttps化というのは結構難易度が高いようです。

完全なhttps化をしないと結局微妙に「危険です」的な表示は出るのですが、多分出る場面が減るはずです。この記事では、メイン部分をhttps化する方法について書きます。


なぜ今https化に踏み切った?

なぜかといえば、2017年の10月からはhttps化していないサイトには「保護されていません」的な表示がされるらしいからです。アドレスバーに表示されるだけですが、気にはなりますよね。

この記事を書いてる時点では、パスワード等を入力するページのみ、その表示が出るようなのですが、その範囲が広がるということです。

まあ、GoogleのブラウザであるChoromに限った話のようなのですが、ほかのブラウザでも徐々にそうなっていくはずです。

現時点で10月、あるいはその前後にChrome同様のセキュリティ強化策を実装すると発表しているブラウザはありません

Firefoxは現状のChrome同様の仕様があり、「パスワードまたはクレジットカード番号を入力するフィールド」の存在する非SSL下のページにアクセスすると、URL欄の横に南京錠に打ち消し線が被されたアイコンが表示されます。

引用:10月からのChromeのセキュリティ挙動の変更について

 

ほか、Googleは「https化しているかどうかを検索順位の要素の一つにする」と明言しているので、やはりした方がよいのは間違いありません。現状、https化による検索順位の影響は1%未満とも目にしましたが、徐々に上がる可能性は大いにあります。

それよりも、ブログに「保護されていません」と表示されていたら、それを見た読者は

「なんやこのサイト詐欺やろ、消えろ盗人ステマブログめ。儲けるために記事を書く偽善者が。無償で記事書けや、おら」

と全員必ず思うはずなので、それはよくありません。

 

なので、https化しました。三連休だったのでちょうどよかったというのもあります。趣味の自主映画編集もしつつ、頑張って一気にhttps化しました。

 

エックスサーバーのWordPressサイトをhttps化する方法

私はエックスサーバーなので、エックスサーバーでの変更方法について書きます。

エックスサーバーはhttps化を簡単にできる機能があるので、比較的簡単です。サーバーパネル内に「SSL化」という設定メニューがあるので、そこからできるようになっています。

以下のブログを見れば、だいたいわかると思います。

エックスサーバー独自SSLが無料!WordPressサイトをHTTPS化する方法

エックスサーバーで無料の独自SSLを導入する手順

 

そこでの作業は結構簡単ですが、その後がちょっとややこしい。

これ以降、上のブログを見るだけでもわかる人はいると思いますが、一応この記事では引っかかりそうなとこを書いておきます。

まずは、全体の流れを簡単に。

 

https化のおおまかな流れ

  1. エックスサーバーのサーバーパネルからSSL化
  2. WordPressの一般設定から、URLをhttpsに変更
  3. Search Regex」というプラグインをインストール
  4. Search Regex」で、記事内のリンクをhttpからhttpsに書き換える
  5. 「.htaccess」でhttpのURLからhttpsに301リダイレクトをかける
  6. サーチコンソールでhttpsのURLを登録

 

こんな感じです。

 

Search Regexについて

まず、Search Regex」というワードプレスのプラグインについて。

これは、記事内とかのテキストを一括で書き換えられるプラグインです。

 

たとえば、「23歳で会社を辞めて起業して海外を飛び回りながら米食べるブログ」というブログを運営していて、おにぎりについてたくさん記事を書きまくっていたとします。

そこで、「おにぎり」というテキストを急に「おむすび」に変えたくなった場合、すべてを手作業で変えても別に構いませんが、膨大な量な場合、23歳が24歳になるくらい時間がかかってしまいます。

そこで、「Search Regex」を使えば、ものの数秒で書き換えられるわけです。

 

今回それをどう使うかというと、エックスサーバーやワードプレスのリンクをhttpsに設定変更しても、ブログの記事内のリンク表記までは変わりません。

なので、httpになったままの記事内のリンクをすべてhttpsに一括変換する…というわけです。

これがなかったら死にます。このブログ、現時点で800近い記事がありますからね。

 

エラーが出たときの対処

ちなみに、このプラグイン、変換時にエラーが出ることがあります。

私の場合は出ました。おそらくですが、記事の数が多いとメモリが足りなくなってエラーが出るのだと思います。

Fatal error: Allowed memory size of 〇〇〇〇bytes

みたいなのが出ました。

「Search & Replace」という、似た機能のプラグインを使えば行ける人もいるようなのですが、私はそれでもだめでした。

 

これはやばい、まさかの800記事近くを手動修正か!?(しかも固定ページやらカスタム投稿やらを入れると1000超える)と思ったのですが、解決法が見つかりました。

「php.iniのメモリ上限設定値を変更する」というものです。

よくわからないかも知れませんが、メモリが足りないエラーなので、使えるメモリを増やす設定にするということです。

”php.ini”ってなんだよ、という方、それも不安にならずに聞いてください。エックスサーバーのサーバーパネルのメニューに「php.ini設定」というのがあります。簡単ですね。

 

php.iniをいじる

サーバーパネルから「php.ini」設定を選択。

次httpsにしたドメインを選択し、「php.ini設定変更」というタブを選択します。

そして、下記の項目の数値を変更します。

 

「memory_limit」の数値を512Mとか、それ以上の数値にします。私は1024Mにしたらエラーが出なくなりました。

常に数値を高くしておけばいいような気がしてしまいますが、私は一応、プラグイン使用後は元の数値に戻しておきました。

 

もう一つの落とし穴

ここで、もう一つ引っかかるところがあります。

ただ普通の記事を書いてるだけであれば引っかからないのですが、私のようにカスタム投稿機能を使っていると引っかかります。というか、引っかかりません。

カスタム投稿が何か、というのは別で知ってもらうとして、このブログでいうと、音楽素材とか、グルメメモ的なやつのことです。

 

これらカスタム投稿はSearch Regexでテキスト変換をしようとしても引っかかってこず、変換してくれません。

なので手動修正か…と思いきや、これも初心者にとっては少し危険をはらみますが、解決策があります。プラグインを編集(カスタマイズ)してしまうわけですね。

[WP] Search Regex でカスタム投稿タイプを対応させる方法

[WP]Search Regex の検索対象にカスタム投稿タイプを含める方法

このあたりの記事を読めばやり方がある程度わかると思います。

ただ、プラグインのバージョンが新しくなっていて、少し上記記事だと迷う部分もありました。

この辺りのカスタマイズはミスっても結局自己責任にするしかないので、自信のない方はやめておきましょう。

 

上記ブログだと「「$posts = $wpdb->get_results ( "SELECT ID,~」の部分を修正しましょう」となっているのですが、私が見る限りはそういう部分はなく、「$sql = "SELECT ID,~」という風になっていました。

その辺がちゃんとわかる方は試してみるのもよいと思います。

 

 

「.htaccess」で301リダイレクト

…というわけで、http→httpsのテキスト変換が終わったら、作業は結構進みました。

ただ、ウィジェットとかphp内のhttp表記とかは直ってないはずなので、その辺も直す必要があります。私は手動で修正しました。他にいい方法もあると思いますが、数が少ないので。

次は「.htaccess」の301リダイレクトをやります。

なにそれ、という感じなのですが、これもエックスサーバーのサーバーパネルに「.htaccess編集」というメニューがあるのでそこから設定できます。

 

私の場合は、.htaccessの最初に下記コードを追加しました。いくつか記述方法があるようです。これは私はあまりわかってないので、自分でどうにかできる人だけやってください。

記事冒頭で書きましたが、ここはミスるとサイトが一時的に真っ白になるので、注意。別サイトを参考にした方が安全です。


RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.storyinvention/\.com

RewriteRule ^(.*)$ https://storyinvention.com/$1 [R=301,L]

RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://storyinvention.com/$1 [R=301,L]

 

https://storyinvention.com/の部分は自分のドメイン名にしてください。

これをやることで、httpのときのアクセスをhttpsに引き継ぐことができます。一時的にアクセスが減ることもあるようだ、というのが怖いんですけどね。私は特に減ってません。

 

サーチコンソールとかの設定

そしたら次はブログ外の作業です。

サーチコンソールにhttpsになったブログを新たに登録し、さらに、グーグルアナリティクスでもそれを連携させます。

その辺は上の方でも紹介した、別の方の記事を読んでみてください。

エックスサーバー独自SSLが無料!WordPressサイトをHTTPS化する方法

↑これとかです。

 

 

おわり

と、ここまでやればとりあえず終わりです。

ただ、冒頭に書いた通り、これでも完全なhttps化にはなってない場合がほとんどだと思うのですが、おおむねhppts化していればとりあえずはよしというのが、今のトレンドだと思います。

アマゾンのリンクとか、使ってるプラグインのなんかのリンクでhttpが紛れ込んでるとか…そういうことがあるので、なかなか完全なhttps化はできないのです。

でも、しないよりは相当良い状態になるので、私のこの記事ではこれでよしとします。

詳細は、別の人のもっと詳しいブログ記事でも見てください…この記事はリンク集的なつもりで使えると思います。

 

なかなか面倒で、2~3時間はかかった記憶なので、元気な時にやるといいと思います。

ちょっと中途半端な内容になってしまいましたが、参考にしてください。

本気で詳しくなるなら結局、本がまだまだ便利です。