MTのアップグレードに伴うURL変更に対応してみる

MovableTypeを2.661→3.151-jaにアップグレードしたわけですが、実際は以下のような手順でやりましたです。

2.661からテキスト形式でエクスポートしてバックアップファイルを作成

バックアップファイルの文字コードをEUC-JPからUTF-8に変更&改行コードをLFに統一(なぜかCRLFも混じってたので)して上書き保存

3.151-jaを新規インストール

3.151-jaにバックアップファイルをインポート

MySQLにもダイナミックページにも指定日投稿にも対応してるんで、結構快適になりましたですよ。

でもひとつ困ったことがあって、以前だったら2005年4月30日 15時28分30秒に作られたエントリーだったら

/2005/0430.html
(<$MTArchiveDate format="%Y/%m%d"$>.html)

がエントリーのURLだったんです(※アーカイブディレクトリは/の直下)。

が、これだとアーカイブの種類は必然的に「Daily」しか選べなくなってしまうわけです。同一日付で複数のエントリーがあったら新しいもので上書きされちゃうので、「Individual」はダメなのです。それじゃ困るよなあということで、今回のエントリーのURLは

/archives/2005/0430_1528.html
(<$MTArchiveDate format="%Y/%m%d_%H%M"$>.html)

になるようにして、アーカイブの種類は「Individual」にしました。となると、以前のURL

/2005/0430.html

にアクセスされたらファイルがないので、当然 File Not Found になっちゃいますね。じゃあどうしようかというのが今回のネタです。

で、解決策として思いついたのは下記の手法。mod_rewriteを使います。

■mod_rewrite

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteOptions inherit

<MTArchiveList archive_type="Individual">
RewriteCond %{REQUEST_URI} <$MTArchiveDate format="/%Y/%m%d"$>.html [NC]
RewriteRule ^(.*)$ <$MTArchiveDate format="/archives/%Y/%m%d_%H%M"$>.html [L,R=301]
</MTArchiveList>

</IfModule>

コレを記述したインデックステンプレートを新規に作成し(ファイル名はテキトーで)、再構築した際にできた内容を/.htaccessにコピペすればできあがり。

試しに旧URLの「http://monolog.spanstyle.com/2004/0916.html」にアクセスすると、自動的に現在のURL「http://monolog.spanstyle.com/archives/2004/0916_2259.html」にリダイレクトされるのが確認できます。

と思ったら、人工事実さんで「MovableTypeのページ分割/Permalinkの変更」という、そのものズバリなコトをやってるのを発見。しかもこちらの方があからさまにスマートなので、mod_rewriteはやめてこっちの手法を取ることにしました。作り直したのはこっち。

■redirect

<IfModule mod_alias.c>

<MTArchiveList archive_type="Individual">
Redirect permanent <$MTArchiveDate format="/%Y/%m%d"$>.html <$MTBlogURL$><$MTArchiveDate format="archives/%Y/%m%d_%H%M"$>.html
</MTArchiveList>

</IfModule>

<$MTBlogURL$>タグのオシリに/がついてるため、こっちは<$MTArchiveDate$>のformatから一文字目の/を抜いてあります。これで同じようにリダイレクトされるようになりました。めでたし。

それにしても2年前の既出ネタを掘り返していたとは、遅れすぎてる感が否めませんな…。

トラックバック(0)

このブログ記事を参照しているブログ一覧: MTのアップグレードに伴うURL変更に対応してみる

このブログ記事に対するトラックバックURL: http://monolog.spanstyle.com/mt/mt-tb.cgi/222

このサイトについて

自分用リンク

Powered by Movable Type 4.22-ja

PR

このブログ記事について

このページは、ishiiが2005年4月30日 15:16に書いたブログ記事です。

ひとつ前のブログ記事は「話を聞かない女、地図が読めない男」です。

次のブログ記事は「SAW(ソウ)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

アイテム

  • swfobject.png
  • symfony.png
  • doclean.png
  • clean.png
  • twitterui.png
  • php5.2.8-warning.png
  • pagesaver.png
  • analytics.png
  • Munsell Hue Test.png
  • Munsell Hue Test0.png