HTTPSにした時に気を付けたこと

何回かやる必要が出てきそうなので、どういう形でやったのかをアバウトに記録しておく。本当は何もせずできればいいのだけど、世の仕様はそんなにうまくできてはいない。

内部リンク

事前に徹底的に書き換えておくのが良い。内部リンクにはドメインも不要なので/で始まる絶対パスで全部書くように統一するのが楽だろう。

ただしrel=canonicalは色々なウェブサービスから(時々考えなしにプロトコル・スキームから始まっていると仮定されて)使われるため、http:から始める方が安全かもしれない。そもそもFacebook向けのOGPでog:urlを書いている場合もあり、この類もプロトコル・スキームから始める必要があり、どうせ書き換える必要は出てくる。諦めて機械的に書き換えができる仕組みを作っておくのも良い。

このウェブサイトの場合は、OGP他を消した上で全て絶対パスにしておくという手法を取ったが、おすすめしない。

Amazonアソシエイトの画像URL

通常、Amazonアソシエイトを使って画像を得ようとするとHTTPの画像になる。一応リダイレクトで振り分けられるのだが、元々のURLはHTTPなためどうしてもMixed Contentにはなる。リダイレクトされてm.media-amazon.com配下を参照する画像に書き換えるか、リダイレクト元の方をHTTPSに書き換えておくとうまくいく。

HTTPからHTTPSの画像を参照する分には問題は少ないので、これも事前に作業しておくことができる。

RSSフィードの再構築

RSSフィードでは絶対URLでリンクは書く。そのためすべてのリンクを書き換える必要がある。あまり忘れない上、概ねブログ・ツール等から自動的に更新されることになるので、大丈夫だろう。RSSリーダーからは全部新着になったり、IFTTTのようなウェブサービスが暴発することがあることには気を付けた方が良い。

僕のように魂を込めてRSS(一部だが)をテキスト・エディターで書いている人は忘れないようにする。

サイトマップの再構築

RSSフィードは忘れないだろうが、サイトマップは忘れる可能性が高い。それなりに自動生成していない人もいると思うので、再構築した方が良い。

301でのURLの移動とサイトマップのURLが食い違ってると何らかの悪影響がある可能性を否定できないので、特に気を付ける必要がある。

連携ウェブサービスの再設定

HTTPで始まるURLを登録しているウェブサービスを利用している場合は忘れずに書き換える。FacebookページやTwitterアカウントなどは忘れがちだろう。

IFTTTやDlvr.itのようなRSSフィードをトリガーとしているものは注意を要する。これらは新着記事かそうでないかをURLで判断し、多くの場合HTTPのURLとHTTPSのURLを区別する。そのため今までの設定を書き換えて使おうとすると、全部新着とみなされ暴発する(僕はまんまと暴発させた)。面倒だが新しく作り直す必要があるだろう。

Search Consoleの再設定

Googleの検索結果での表示などを制御するSearch ConsoleではHTTPとHTTPSが別のプロファイルになる。そのため改めて追加する必要がある。それだけでなくすべて設定のやり直しなので、ウェブサイトの認証やサイトマップの送信も行う。

特に何かこうというわけではないが、ウェブサイトについてGoogleへの連絡する際の要になるので、作っておいた方が無難だろう。

Analyticsの設定変更

AnalyticsはHTTPとHTTPSの両対応であるが、設定内に優先するプロトコルの設定が複数ある。プロパティのプロパティ設定にあるデフォルトのURLとビューのビュー設定にあるウェブサイトのURLの2つだ。どちらも書き換えておく必要が出てくるだろう。

思い切ってAnalysticsを捨てるという選択もなくはない。どちらにせよ設定は書き換えておいても損はないだろう。

HTML生成に使うツールなどでプロトコル・スキームを切り替えられるようにしておくと書き換える場所が少なくて済むので、作業がスムーズに進む。といってもそういうことができることはあまりないので、どこを書き換えればうまく切り替わるかを事前に色々実験しておくと良い。

もう誰が使っているか知らないがBlosxomでは$blog_urlという設定変数で集中管理されるので、それをうまく利用する。

$scheme = "https:";
$domain = "hail2u.net";
$blog_url = "$scheme//$domain/blog";

このようにblosxom.confで設定を分離させ、切り替えられるようにしたうえで、プラグインやフレーバーから必ず$blog_urlを使うようにしておいた。たまにどうしようもないプラグインもあったりするので、その場合に$blosxom::schemeで拾えるようにするためこうなっている。


grepして置換など必要のない形に事前に整えるのが最低限のラインで、HTTPで公開済みのHTMLがそのままHTTPSで機能するようになっているのが理想だ。HTTPSへの移行を発動させる直前の作業は、HTTPな参照が残っていないかgrepして確認するくらいで終えたい。