MT3.2のMTLinkタグの変更

拙著「ブログ自由自在 Movable Type 上級カスタマイズ術」の中で、PHP化した際のリダイレクトの方法を解説しています(251ページ)。
ところが、MT3.2ではメインページのリダイレクトがうまくいかないということで、読者の方から質問をいただきました。
調べてみると、MT3.1xとMT3.2でMTLinkタグの動作が変わっていて、それが原因でリダイレクトが動作しなくなっていました。

MTLinkタグは、「特定のインデックステンプレートのURL」または「特定のエントリーのURL」を出力するタグです。
例えば、以下のようにすると、「メインページ」というテンプレートへのリンクを出力することができます。

<a href="<$MTLink template="メインページ"$>">メインページ</a>

MT3.1xでは、上のようにすると、URLとして「http://BlogのURL/ファイル名」の形で出力されていました。
ところが、MT3.2の場合、ファイル名が「index.*」の形になっていると、ファイル名をカットしてディレクトリ名までを出力するように変わっています。
ファイル名まで出力するには、以下のように「with_index="1"」というアトリビュートをつけることが必要になっていました。

<a href="<$MTLink template="メインページ" with_index="1"$>">メインページ</a>

「ブログ自由自在 Movable Type 上級カスタマイズ術」の251ページの方法でリダイレクトを行う場合、そのページのリスト6.1の1行目を以下のように書き換えてください。

書き換え前

Redirect permanent <$MTLink template="メインページ" hturlconv="1"$> <$MTLink template="メインページ"$>

書き換え後

Redirect permanent <$MTLink template="メインページ" with_index="1" hturlconv="1"$> <$MTLink template="メインページ" with_index="1"$>

ちなみに、「with_index」のアトリビュートが新設されたことは、Movable Typeのヘルプには記載されていません。
ソースコードを調べてみて分かった次第です。

MT Cloud Starter Kit
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください