Movable Type 5へ遅まきながらアップグレード。

何時までも MT4 を使い続けるわけにもいかないので、サイトデザインを変更したいな、と思い立ったのを機に MT5 へとアップグレードしてみた。
この際 WordPress に乗り換え…というのも考えたのだけれど、ここは意地でも Movable Type を使い続けてみましょ、ということで。

やりかたは公式サイトの解説を参考にしつつ、こんな具合。

  • データベースを複製。
  • MT5を、既存のMT4とは別のディレクトリにインストール。
  • 複製されたデータベースに対してアップグレード実施。
  • 必要なプラグインやらをMT5にインストール。
  • 再構築。

データベースのアップグレードのときに幾つかエラーが出て焦ったけれど、これはこちらのMySQL設定がマズかったことが判明。この辺りの顛末は別にメモを残すことにしましょう。

そして追加の設定。
この時点で、

  • MT4をインストールしたパス:http://freefielder.jp/mt4/
  • MT5をインストールしたパス:http://freefielder.jp/mt5/
  • ブログ公開URL:http://freefielder.jp/blog/

というふうになっています。

で、今回の以降を機に「日別アーカイブ」を廃止したので、そのケアをします。
これまで日別アーカイブは、例えば2013年6月1日の記事アーカイブだったら http://freefielder.jp/blog/2013/06/01/index.html に出力されていました。今後はコレが存在しなくなるので、もしこのURLに外部からリンクが張られていたら 404 エラーとなってしまいます。
なので、

日別アーカイブへのアクセスは、同年同月の「月別アーカイブ」- 上の例ならば http://freefielder.jp/blog/2013/06/index.html - へリダイレクトする。

…という処理でよろしいか。

★ ルートディレクトリの .htaccess に、以下を記述。

RewriteEngine On
RewriteRule ^blog/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ /blog/$1/$2/index.html [R=301,L]

それから「同じタグを持つ記事」リストの出力ページ。これは mt-search.cgi によって出力されるのですが、こちらも外部から旧MT4の mt-search.cgi にリンクが張られていると不都合が生じます。

http://freefielder.jp/mt4/mt-search.cgi?なんたら へのアクセスを、http://freefielder.jp/mt5/mt-search.cgi?なんたら へリダイレクト。

つまり、こう。

★ ルートディレクトリの .htaccess に、以下を記述。

RewriteEngine on
RewriteRule ^mt4/mt-search.cgi(.*)$ /mt5/mt-search.cgi$1

【追記】…と、上記の設定では不十分だという事が判明。
クエリ文字列に日本語が含まれている場合、リダイレクトの過程で日本語部分が2度URLエンコードされてしまって、正しい目的地に遷移してくれません

なので「(日本語)文字列をエスケープしてくれるな」という命令を入れます。

RewriteEngine on
RewriteRule ^mt4/mt-search.cgi(.*)$ /mt5/mt-search.cgi$1 [R=301,L,NE]

新たにMT5で構築されたファイルたち相互で内部リンク切れを起こすことは無い筈なので、外部からのリンク切れ対策としては、これだけで良いですか?
まだ何か見落としがあるのかな。

カテゴリ: