SSL対応(HTTPS化)するとき何が面倒くさいって、混在コンテンツ対応です。
混在コンテンツとは、サイトをSSL化したときに、完全にSSL対応にならない状態のことです。
完全対応している場合は、Firefoxではこんな感じで表示されます。
Chromeだとこんな感じ。
これを解消する方法として、一般的な方法といえば、Search Regexプラグインを用いて置換する方法があります。
詳しい方法は、以下を参照してください。
ただこの方法は、データベースを置換する必要があるので、多少のリスクがあります。そして面倒くさい。
なので先日、「もっと手軽にできたらなぁ」と以下の方法を以前思いつきました。
今回は、上記の方法を、Simplicityの機能に落とし込んだということになります。あと、対応URLもいくつか増やしました。これでかなり、SSL対応が手軽になるかと思います。
今回の機能を用いて、SSL対応する方法について説明します。
主な手順
WordPressサイトをHTTPSにするのに必要な主な手順は以下です。
- サーバー上でSSLの設定をする
- WordPressのアドレス設定を変更する
- リダイレクト設定をする
- Simplicityの「簡単SSL対応」機能を有効にする
サーバー上でSSLの設定をする
まずは、サーバー上でSSLの設定をする必要があります。
エックスサーバーの場合だと、コントロールパネルにログインして、SSL設定をします。
この設定は、サーバーごとに違うと思うので、サーバーの解説ページを参照してください。
WordPressのアドレス設定を変更する
次にWordpressの管理画面から「設定 → 一般」設定を開きます。
「一般設定」にある以下の項目を変更します。
- WordPressアドレス(URL)
- サイトアドレス(URL)
それぞれのURLの「http」部分を「https」に変更します。
変更後はこんな感じ。
変更が済んだら、設定を反映させてください。
リダイレクト設定をする
canonicalタグ再設定されていれば、ここまででも良いのかと思いますが、http→httpsページにリダイレクトをして統一したいという場合は、.htaccessの冒頭に以下のコードを追加します。
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} !=on [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>
Simplicityの「簡単SSL対応」機能を有効にする
最後に、Simplicityの「外観→カスタマイズ」の「その他」項目から「内部URLをSSL対応」機能を有効にします。
この機能を有効にすることで、以下のようなURL置換が行われます。
- 内部リンクURLのSSL化
- Amazonアソシエイト画像のSSL化
- バリューコマース画像(インプレッション画像)のSSL化
- もしもアフィリエイト画像(インプレッション画像)のSSL化
- A8.net画像(インプレッション画像)のSSL化
- アクセストレード画像(インプレッション画像)のSSL化
- 古いはてなブログカードの iframe URLのSSL化
- はてブ数画像のSSL対応
- 楽天商品画像のSSL対応
- Google検索ボックスのSSL対応
これだけのURLをSearch Regexプラグインを用いてデータベース置換しようとすると、結構な手間と多少のリスクがあるので、それなりに楽になるかと思います。
今回の機能を用いることによる利点と難点
今回の機能を利用することによって生じる利点と難点は以下のようになります。
利点
思いつく利点は以下。
- 非SSL URLを手軽にSSL対応させることができる
- ウィジェット・コメントもSSL対応できる
- プラグインを用いて何回もデータベース内のテキストを置換する必要がない
- データベースの内容を変更することがない
- データベースへの変更がないので比較的安全
- データベースを変更しないので機能を無効にすれば元に戻せる
また、データベースを誤って書き換えてしまう心配がないので、安心して行うことができます。もし、エラーが出たのなら機能をオフにすればよいだけです。
難点
SSL化手順を安全に短縮する代わりに、以下のような難点があります。
- 表示前に毎回PHPで置換してから表示するので多少の処理時間がかかる(x/1000秒くらい)
- 置換対象URLを普通に本文に書いてしまうと置換されてしまう
(これはプラグインを使用しても置換されます。ただ、プラグインを利用して置換した場合は後から修正して再投稿すればOK) - 全ての非SSL URLに対応しているわけではない
今回の方法は、データベースの内容を変更しているわけではないので、Wordpressの本文表示前に、毎回「非SSL URL」を「SSL対応URL」に置換して表示しています。
そのために、表示前に多少の処理時間はかかると思います。ただ、処理にかかる時間といっても0.0XXX秒程度の違いとは思いますが。多少処理に時間がかかっていたとしても、ページキャッシュプラグイン等を利用する事で、表示時間的には全く変わらなくなると思われます。
また、本文中に、置換対象URLが書かれていると、PHPによって置換されてしまうので、置換対象URLがある場合は何かしらの対応が必要になるかと思います。
あと、この機能は、全ての非SSL URLに対応しているわけではありません。ブログなどでよく使われているものには、大方対応しているとは思いますが、全てではないです(僕が気付いたもののみです)。
もし、今回の機能で対応していない、画像URL等があれば、フォーラムにご報告いただければ、対応できるURLならば対応します。
ただ、SSLに対応していないサービスなどもあるので、対応できないケースがあるのもご了承ください。
まとめ
このように今回、「SSLの混在コンテンツを予防する機能」を付けましたが、僕自身は、あまり混在コンテンツは気にしていません。
実際に、当サイトでも「SSL対応されていない広告」を貼っているので、混在コンテンツページが多々あります。
そんな状態で放置しているのは、「Google自体が混在コンテンツなどをランキングの対象としていない。見ているのはURLの最初の5文字だけ」といわれているのもあると思います。
詳しくは以下。
ただ、全てのページを完全SSL化すると、気持ち良いことは気持ち良いので、サイトのSSL化を考えている場合は、一度試してみると良いかもしれません。
「やっぱやめよう」と思えば、機能をオフにして、設定を逆にたどれば手軽に元に戻せますし。
コメント
エックスサーバーの新サーバー簡単移行サービスを利用できる順番が回ってきたのですが、SSL化も予定してます。
順番としては「サーバー移行」→「SSL化」の順がスムーズですかね?
まだSSL対応していない場合は、その方が良いかもしれません。
どちらの手順でもできますが、僕ならそっちの順番でします。
簡単SSLに変換する機能、すごいです!
本日、Xサーバーの設定も含めて、この手順でやってみたところ、
Word Press上の画像コンテンツも全てhttpからhttpsにリンクが更新されていて、
以前とまったく変わらない状態でSSL化できました。
ありがとうございます!
アフィリエイトの設定について、二点、教えてください。
1. 「A8ネット」や「もしもアフィリエイト」などの
アフィリエイトサイトにアクセスし、
登録している自身のサイトのURLをhttpからhttpsに変更必要でしょうか。
2. Amazonや楽天、A8ネット、もしもアフィリエイト、カエレバ、などで
利用しているアフィリエイトのリンクは、
更新する必要があるのでしょうか。
(画像のSSL化とは、リンクの更新が必要ないということでしょうか?)
1.とりあえず、変更できるなら変更しておいた方が良いかと思います。ただ、僕はこの書き込みを見るまで、そのことに気づかず、ASPの登録URLは古いままにしていましたが、特に何事もありません。なので、変更していないからといって、現状は何かしら問題あるということはないのかもしれません。
2.それらのタグは、置換されていると思います。ただ、いろいろなケースで利用されている場合があるので、全て正常に置換されている保証までは出来ないです。機能利用後は、ある程度自前でのチェックも行ってみてください。
(※画像のURLが置換されていなくても、インプレッション関係のものなので、収益発生などへの影響はないと思います)
もし、うまく置換されていないものがあれば、フォーラムにご報告いただければ、大抵のものならば修正対応できるかと思います。
はじめまして、
超初心者なのですが、この度、simplicity2にてSSL化にチャレンジして、ある程度は、何とかなりました。
しかし、グーグルコンソール上で、「updatedがありません。」というエラーが出てしまい、ライブデータで調べたところ、「属性itemtypeの値が無効です」というエラーでした。
いろいろと調べた結果、
=============================================
=============================================
上の
「https」の「s」の文字が原因らしいのです。
そこで、直接、CSS上で、「s」の文字を削除しようと思って、テーマの編集画面から上記の文字の入っていそうなテーマファイルを隅から隅まで見たのですが、見当たりませんでした。
もしよろしければ、上記の文字の入っているテーマファイルをご教授いただければ幸いに思います。
すみません。コードは、表示されないのですね。
失礼いたしました。
フォーラムのほうに伺います。