レンタルサーバーWebarena SuiteXで、Movable TypeのメールフォームをSSL化したのでそのときのメモ。

まえがき

最近、wordpressよりもMTにふれる機会が多いです。個人的な感想を言えば、MTは、「作る作業がとっても楽しいCMS」です。普通にブログを立ち上げるだけなら問答無用でwordpress使いますが・・・。

今回は、MTでメールフォームをSSL化するときのベストプラクティスが、調べてもいまいちよく分からなかったので、自分なりの方法をメモします。みんな、どうやってるんでしょうね。

MTでSSLフォルダに書き出せない問題を解決する

今回、サーバーは、Webarena SuiteXというレンタルサーバーを使いました。こちらのサーバーは、SSL用のフォルダにファイルを入れないとダメなタイプですが、そもそも、MTでは、サイトルートよりも上の階層であるSSLフォルダにファイルを書き出しできないという事態に。とりあえず、SSLフォルダ内にシンボリックリンクを作成して、通常のフォルダを参照するように設定します。

SuiteXのマニュアルでも解説されていますね。EC-CUBEのインストールガイドですが、シンボリックリンクの作成方法が書かれています。
【後からSSL化】EC-CUBE2インストール手順

注意点としては、上記サイトにも書かれていますが、ルート上に配置されたファイルはシンボリックリンクで参照させることができないということです。MTでは、標準でcssファイルjsファイルがルート上に書き出されます。「css」「js」などの名前でルート上にフォルダを作り、その中にファイルが書き出されるよう、出力ファイル名を変更しておきましょう。

そして、SSLページで読み込まれるファイルや画像などが、リンク切れしないように、シンボリックリンクを作成していきます。

ページ内の共通部分をSSLページでも使えるようにする

全ページ共通で使用される部分などは、テンプレートモジュールとして保存されていると思います。ヘッダーやフッターなどがそうです。これらを、SSLページでも問題が起きないように修正します。

まずは、サイト内リンクのURLを、絶対パスで記述します。<mt:blogurl>などのタグをきちんと使っていれば、問題ないと思います。SSLページにリンクする場合は、https://から記述しないといけないので、そのままでは<mt:blogurl>は使えませんが、HttpsConverterプラグインを使えば、スマートに記述できます。

で、画像やcss、jsファイルなどは、相対パスで記述します。SSLページ内で、http://からはじまる画像などを読み込むと、アラートが出ますから、そうならないように相対パスで記述する必要があります。こちらはMTTruncateURLプラグインを使って、画像やファイルなどのパスの部分だけを相対URLに変換させることで対処します。

フォームページを作る

フォームページも、シンボリックリンクで参照できるよう、ルート上には置かずに、「form」とか、てきとうにフォルダを作って、その中に書き出すようにします。MT標準のエディタでページ内に画像を挿入すると、絶対パスになってしまうので、相対パスに修正するなどしてください。シンボリックリンクもお忘れなく!

とりあえず、こんな感じ?

なんか、文章にしたら、別にたいしたことしてなかったですね。実は、今回、とあるMT4で構築されたサイトをMT5でリニューアルしたのですが、リニューアル前のサイトのメールフォームが、そこだけMTとは別に手動で作成されていたりと、ちょっと可笑しな感じだったので、「みんなどうやっているんだ!」と、心に迷いが生じたわけです。・・・迷うからこそ、人は強くなれる。みたいなこと、昔、何かで聞いた気がするので、まあ良しとしますか。

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

この本しか持ってないけど、これさえあれば何とかなります。