いいめもも、このブログも、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もちゃんと変換してくれます。