ハイフンとアンダースコア(2)

Movable Typeで書いていたブログをWordPress用に書き出すとURLの中のハイフンがアンダースコア(_)になってしまうという問題がやっと解決した。

この原因は、例えばブログに「Oh my God!」というタイトルをつけた場合、Movable Typeの方では「oh_my_god!」というデータをデータベースに保存するのだが、私がURLにはハイフンの方を使うという設定にしていたため、ブログ公開時には自動的に「oh-my-god!」に変えて公開していた模様。

ところが、WordPressへの移行用にデータをテキストファイルに書き出すと、元のアンダースコアに戻ってしまうというわけだ。

従来と同様にしておかなければ、過去のブログがリンク切れになってしまうので困る。

かと言って、8年近く毎日書いた3000程のエントリーのURLを、一つ一つ手で直していくわけにはいかない。

テキストエディタで一括置換することも考えたが、それではURL以外の部分に使われているアンダースコアも置き換えられてしまうので問題だ。

やはりこれはデータベース(MySQL)上のデータを条件付きで一括置換するのが一番楽ではないかと思い、phyMyAdminでやってみたがSQLの命令文がうまく書けない。

どなたか先人が同じ事をしていないかと調べたらやはりあった。

http://wordpress.org/support/topic/change-permalink-hyphen-to-an-underscore

これで良いようだ。

UPDATE wp_posts
SET
guid = REPLACE(guid, ‘_’, ‘-‘),
post_name = REPLACE(post_name, ‘_’, ‘-‘);

やってみたら一発でアンダースコアがハイフンに戻った。

ブログ記事を置いているディレクトリを/mt/から/wp/に変更したのだが、こちらは/mt/に来たリクエストを301 リダイレクトさせる.htaccessを置いたので、従来のURLに来た方も、新しいディレクトリに誘導される。

この部分についてはまた別の機会に。

カテゴリー: ブログ タグ: パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です