MovableType(MT)5.0にしたときだったか、blogテーマを今のやつに変えたんですよね。
そのときに記事アーカイブのパスが下図のようになりました。
MTは2.66の頃から使っていますが、昔は「entry_basename.html」がデフォルトだったような気がします。
いや、もしかしたら自分が勝手に変えてたのかもしれませんが、とにかく「entry_basename.html」で使っていました。 MTのメジャーバージョンアップやテーマの変更なんて滅多にないので、忘れてしまいました。
このパスというのは、記事のhtmlのファイル名称です。
例えば「東京電力、「夜得」と「夜トク」どっちがお得?」の記事は /archives/2016/01/post-7496.html です。 この「post」の後ろの「-」と「_」の違いですね。
MT5.0の時に「面倒なんでデフォルトでいこう」と考えて「entry-basename.html」にした訳です。
その結果、記事中に含まれる他の記事へのリンクが切れるようになりました。 当たり前といえば当たり前ですね。
実際には旧ファイル名のhtmlファイルは残ったまま、新しいファイル名のhtmlファイルが再構築されているので、旧ファイルの方に飛ぶ訳です。 こちらはCSSが切れてしまっていて大変見苦しいことになっています。
記事中のリンクを検索・置換すればいいんですが、これがなかなかに面倒です。
そこで mod_rewriteで書き換えることができないかやってみました。
/usr/local/etc/apache22/extra の httpd-ssl.conf に
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)/post_(.*)$ $1/post-$2 [R]
</IfModule>
と書いてみたところ、ちゃんと新しいファイル名のhtmlファイルに飛んでくれるようになりました。 これでようやく古いファイルを消せるようになります。
ファイル名が「post」で始まらないタイプの記事(ファイル)もあるんですが、それは見つけたら個別に対応しようと思います。