ちょっとやりたいことがあって、MT全体をPHP化しようと思いました。
しかし、PHP化するとファイルの拡張子を*.phpにしなきゃならないのでURLが変わっちゃいます。
これだとトラックバックやら検索エンジンにの検索結果やらで飛んでくると404FileNotFoundになるという問題が~。
で、いろいろ調べていたわけですが、やはり先駆者はいらっしゃるようです。
やり方としては、旧URLから新URLにぶっ飛ばすような設定を.htaccessに書いておくだけで、その設定をMTに自動生成してもらうテンプレートを作るってわけですね。
まぁ .htaccessが使えないところではどうするんだという話もあるわけですが。
以下 作業メモ
とりあえず、MTの管理画面→BLOGの設定→ウェブログの設定 でアーカイブファイルの拡張子をphpにしておきます。
で 「アーカイブの設定」で「アーカイブファイルのテンプレート」の欄に書き出したいアーカイブファイルのファイル名を書きます。
私は archives/年/月/日-時分.php というような感じで書き出したかったので 以下のようにしました。
<$MTArchiveDate format="%Y/%m/%d-%H%M"$><$MTEntryKeywords dirify="1"$>.php<$MTEntryKeywords dirify="1"$> というのは各エントリに設定したキーワードを書き出してくれるようです。
これで archives/2004/11/20-1649.php って感じでファイルが作られるようになりました。
で 次に旧URLから新URLに飛ばす設定をします。
MTの管理画面→Templateの編集→新しい Index Template を作る で以下のテンプレートを作ります。
ファイル名は .htaccess とします。
<MTArchiveList archive_type="Individual">として、再構築するとルートに.htaccessというファイルが作られて、中身はこんな感じに
Redirect permanent <MTEntries>/taka/archives/<$MTEntryDate format="%Y/%m"$>/<$MTEntryID pad="1"$>.html <$MTBlogURL$>archives/<$MTArchiveDate format="%Y/%m/%d-%H%M"$>.php</MTEntries>
</MTArchiveList>
Redirect permanent /archives/2004/11/000120.html http://blog.eternalmiracle.net/taka/archives/2004/11/20-1650.phpこれで もともと archives/年/月/エントリのID.htmlとなっていたものから新しいURLに飛ばせるようになります。

コメントする