当社はIT技術のオンライン教育を得意としたセミナー専門会社です。 | 一戸英男

ITエンジニアの技術力UPをお約束します。

サイトの設定情報をhttps仕様に変更 WORDPRESS (ログイン情報、メニュー情報、プログラムのパス等)

サイトの設定情報をhttps仕様に変更 WORDPRESS (ログイン情報、メニュー情報、プログラムのパス等)


サイトは必ずしも静的ページで作られているわけではありません。プログラムで構成されていればその中にもファイルやリンクのパス名が入っています。それらを書き換えないとhttps化の動作ができない場合もあります。やはり、WORDPRESSもhttps化を設定やデータベースの中身のレベルで書き換えが必要です。フレームワークも同様ですし、オリジナルのプログラムもそうなると思います。作業を行う前に必ずコンテンツ、プログラム、データベースをバックアップして切り戻しができるようにしてから作業を行いましょう。

尚、今回はWORDPRESSでのhttps化に特化して説明したいと思います。

WORDPRESSのhttps化方法

https化する方法としてざっくり3種類考えられます。どの方法がいいか!?というよりもどれが最短でできるか?という観点で私はやっています。

  • https化プラグインを使う。設定の中にあるパス名を書き換える。
  • WORDPRESSのデータベースの中をhttpからhttpsに置換する。
  • DB置換もしくはxml形式で記事をエクスポートして、新規にhttpsでWORDPRESSを設置してからインポート、設定をやり直し。

上記の方法では、間違いなくhttps化プラグインが一番簡単です。でも、正直いうとどの方法も完璧ではないので最短でできる方法から試して駄目だったら次の方法という感じでやっています。



https化プラグインで有名なのは「Really Simple SSL」です。これは簡単にいうとプラグインで内部のhttpを正規化表現か何かで引っ掛けhttpsに置換しているのだと思います。複雑なプラグインやテーマを使っているならまずは、これでやってみて様子見がいいと思います。



2つ目のDBの中を置換する方法ですが、これは私がよく使っている方法です。直接MySQLでクエリー行で置換を行うケースとSQLファイルにして吐き出したテキストを置換する場合があります。サイトのプラグインやテーマ、カスタマイズの状況を把握してやり方をチョイスしています。

【置換SQLサンプル】

下記の3つのテーブルを置換すると良いと思います。



DB置換ではwp_postsとwp_optionsに限定して置換をかけたほうが良いです。その他のテーブル置換を行うと概ねWidgetやテーマ、プラグインの設定が飛んでしまうケースが多いです。置換後にSSL化でWEBサーバ起動し、その後にWPへログインし設定パネルへ移動しhttpをhttpsに手動修正してゆく方法だとうまく処理できる場合が多いです。DB上で変換しないで、管理画面>ツールにあるエクスポート機能で投稿、固定ページ、カスタムポストタイプのデータを事前に取っておいてインポートする方法があります。カスタムポストタイプだけ特殊な場合があり、うまくエクスポートできない事もありますが、事前にデータベースをバックアップしておけばやり直しができるので安全に試行してください。



3つ目の方法は無難な方法です。確実に再構築できると思います。https仕様でWORDPRESSを新規インストールし、後から記事データをDBレベルで流し込むかxml形式で流し込みます。widgetやプラグイン、サイトの設定は予めレプリカサイトを作り閲覧しながらコピーするやり方、もしくはテキストに設定をコピペしてそれを流し込んでゆく方法があります。時間が多少かかりますが確実な方法です。

タグ: , ,

コンテンツ内に埋め込まれているリンクの記述をhttps対応記述に修正


SSL化で忘れがちな修正ポイントですが、ページ内のコンテンツに含まれるファイルパス名もhttpsに対応する記述が必要です。

ページの記述をSSL対応にする理由

  • ブラウザのURL手前にでてくる鍵や盾のアイコン上に黄色い△のアイコンが被って表示される。(警告の意味)
  • 警告アイコンを見ると躊躇するユーザが一部出てくる。ページの閲覧機会損失になる。
  • 会社として程度を低く見られることもある。

このような事がありますので、是非ページ内のコンテンツもSSL化に則した内容に書き換えましょう。

では次に、SSL化に則したファイル、リンクの記述ですが3種類書き方があります。以下の方法が考えられます。

SSL化に対応したファイル、リンクの記法

  • 相対パスで書く
  • 絶対パスでhttpsから記述する。
  • プロトコル名を省略し「//ドメイン/パス名」の形式で書く。記述サンプル( //code.google.com/check.php?id=3432fdsfdt8t34 )この書き方は現在Googleが非推奨としています。理由はhttpsとhttpの両方をサポートする書き方だからフィルタリングが難しいのでしょう。

どれでも良いのですが、一番良いのは相対パスだと思います。書き方は混在しても問題ありませんがベースのやり方は統一したほうが良いでしょう。

また、事情により参照しているリンクがhttpsに対応していない場合は諦めましょう。でもいずれそのサイトもまともならhttps対応するはず。
全体的にどうしてもそうなってしまうページはあると思います。三角マークが少なければ印象は悪くないと思います。TOPページは絶対にhttpの外部リンクがあるなら外すべきです。尚、外部の通常リンクがhttp://であることは問題ありません。
自分のサイトの一部となるjavascriptや画像、動画などは外部から供給される場合は注意が必要です。

タグ: , , , ,

https化で出てくる問題(https化した途端にmod_rewriteが効かなくなってしまう)


Google Chromeの7月リリースバージョンでいよいよサイトのALL SSL化が始まる。
これによりhttpに対応していないサイトは「このサイトは安全でない」の画面が出てしまう。今でも
稀に見ることがある画面ですが、あの画面がでてしまったら当然誰もクリックor タップしないでしょう 。

ということでSSL化をしなければ行けないわけだけど、もう一つこれには考慮が必要なことに気づいた。
スマホとPCコンテンツを分離して作成している場合はアノテーション設定が必要だが、モバイルファーストインデックスも
開始宣言(2/21)が出ているし、何よりもアノテーション設定でURLをhttpsに変更しなければならない。

※レスポンシブで制作している場合は気にする必要はありません。WORDPRESSでデバイスプラグインを使っている人も問題なし

ということでSSL化をやってみると色々な新規顧客である特有の問題が出た。
一番ハマったのが、「https化した途端にmod_rewriteが効かなくなってしまう。httpのときにはmod_rewrite使えたのに!」という現象のサーバが幾つかあった。
つまりWORDPRESSなどではカスタムパーマリンクが使えなくなってしまう現象に遭遇しました。

原因を調べるために、約1日考え込み実験をしまくりました。
や~、これは気が付かなかった。httpd.confを普段触らずVirtualHostでサイト定義するから頭がそちらに向かなかった。
なんとhttpd.confを調べたら下記のようになっているではないですか! なるほど、それではTOPからその設定になっていると
下位で設定したコンフィグは無視されますね!

httpd.conf 修正前)

httpd.conf CentOSの場合修正後)

apache2.conf Ubuntuの場合修正後)



apacheを再起動してめでたくmod_rewriteがSSLで使えるようになりました。
上記の設定はDirectoryディレクティブを使用しているため、適切に範囲設定をその環境内で
望ましい設定を厳密には行う必要があります。上記のケースでは”/”でAllowOverride Allにしているためセキュリティを
高くするためにはフォルダーの範囲をもう少し狭めたほうが良い場合もあるので実験して良いバランスの設定を考慮スべきと思います。

他にも、https化で出てくる作業が多いのでメモをしておきます。

https化で遭遇する付帯作業

  • Google Search Consoleにhttpsでサイト登録が必要
  • 旧httpアドレスがインデックスされたり、他サイトと連携している場合はhttpアドレスからhttps転送設定が必要
  • 転送設定をjavascriptでやる場合は注意が必要。コンバージョンが拾えなくなる可能性がある。リファラーを追加する設定が必要かも
  • Google Analysticsの管理画面でプロパティ、ビューのURLをhttpsに切り替える。ビューのコンバージョンURLも変更。
  • sitemap.xmlをhttpsのアドレスになっているかチェック、なっていなかったら作り直し
  • WORDPRESSのプラグイン経由でanalysticsを設定、取得している場合は再設定が必要になる場合が多い

タグ: , , , ,