Movable Type 4に移行してリンク切れが起きる問題対策

いいめもも、このブログも、Movable Typeをつかっています。いいめものほう、以前はMovable Type 3だったのですが、サーバを移動させたのを機会に、Movable Type 4に乗り換えました。

で、乗り換えて気づいたこと。そこら中でリンク切れが起きている...

切れたリンクと本来のページを見てみると、どうやら、Movable Type 3のころ、URLに_(アンダースコア)を使っていたページが、勝手に-(ハイフン)に置き換えられてしまった模様。
調べてみると、困っている人もたくさん。

アップデートは計画的に - Nizah Blog
MT4.1 ウェブページのファイル名に「_」アンダースコアは禁物 - 具現 | 蓮華のライフデザイニングブログ
コメントスパム対策さらにその後 - あれているBlog
bq69 collectibles - MT 4.1 upgrade: cont'd
みなさまそれぞれのやり方で対処されたみたいですが、納得いかないっすよねぇ?

自分の場合、必ずしもURLがpost_14.html という形になっているとは限らなくて、this_is_a_pen.htmlみたいなURLになっていることがあるので、単純なredirectではとばすのが困難です。サーバ移行だから、Movable Type3の頃のキャッシュに期待するわけにも行きません。

こういうときは、apacheのmod_rewriteの出番だと思われます。rewrite_ruleを使ってアンダースコアをハイフンに置き換えてリダイレクトしてあげれば、大手サイトからいただいたリンク価値を失うこともなく、問題を一発で解決できるはずです。今こそブログに書くときだ!
...と思ったのですけど、最近忙しかったので、実作業ははてなの皆様にアウトソースさせていただきました^^;

Apacheのmod_rewriteをつかって、URL中のアンダースコアをハイフンに置き換えるRewriteRuleを教えてください。 つまり、 http://example.com/blog/2008/05/post_14.html と.. - 人力検索はてな
期待通り適切な書き方を教えていただけたので、ここでブログ記事として公開する次第。

Movable Type 3から4に移行して、URLがアンダースコアからハイフンに変わってしまって困っている人は、httpd.confに以下のようにかけばリダイレクトさせることができます。

<Directory "hogehoge">
    Options FollowSymLinks
    RewriteEngine on
    RewriteBase /
    RewriteRule ^([0-9]+)/([0-9]+)/([^_]+)_(.+)\.html?$ $1/$2/$3-$4.html [N,L,R]
</Directory>
<Directory "hogehoge"> の部分は、自分のブログが置いてあるディレクトリ(公開設定-公開パス-サイトパスに書いてある)です。

このルールにより、2007/10/post_123.htmlという具合にアンダースコアを含むURLにアクセスしてきた場合、Apacheサーバが「あ、そのファイルはこっちに移動しましたから」(301 Moved Permanently)と新しいURLを案内してくれるようになります。
2007/10/this_is_a_pen.htmlみたいなURLもちゃんと変換してくれます。

カテゴリ:

トラックバック(0)

このブログ記事を参照しているブログ一覧: Movable Type 4に移行してリンク切れが起きる問題対策

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

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、 もぎゃが 2008年5月10日 20:39に書いたブログ記事です。

ひとつ前のブログ記事は「 [linux]なんでもsvnで管理する2 」です。

次のブログ記事は「 ディスプレイアーム購入ガイド 」です。

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

Powered by
Movable Type