MovableTypeを使ったサイトを、階層が違う場所へリダイレクトする方法

MovableType

サイトを移転した場合に、新しいサイトへ誘導する方法はいろいろありますが、今回はhtacsessを使って、階層が違うところに設置される箇所へのリダイレクト方法です。

具体的なURL

言葉だとイマイチ説明できているか不安ですが、以下の様なリダイレクトです。

  • 前:http://hoge.com/2013/05/originalname.html
  • 後:http://hoge02.com/category/originalname.html

ドメインとHTMLの名前の間が違います。

実装

方法は「htacsess」に個別ページのURLを全部書きます。

そのままサーバーに自分で書いたhtacsessを置くとなると手作業で途方も無い数ですが、MTのテンプレートタグを使ってしまえば簡単でした。

インデックステンプレートに以下を記述し、「.htacsess」と出力するようにMTを設定します。

<MTEntries lastn="9999">
Redirect 301 /$MTEntryDate format="%Y"$>/<$MTEntryDate format="%m"$>/<mt:EntryBasename />.html http://hoge02.com/<$MTCategoryBasename$>/<mt:EntryBasename />.html
</MTEntries>​

これで階層を合わせればリダイレクトしてくれます。

あとがき

最初、階層が一緒だと思いこんでいたので

Redirect 301 /category/ http://hoge02.com/category/

で大丈夫だと思ったのですが、よく見てみたら階層が違うことに気づきました。

もう全部トップページに飛ばすかと諦めていたのですが、MTのテンプレートで吐き出してしまえば、全ページを自分で記述することなくできたのでよかったです。