先日、エントリのパーマリンク URL の書式を変更しました。パーマリンクに末永く存続してもらうことを考えて、アーキテクチャに依存した拡張子 .php を省いてみたのです。これに併せて、過去に頂戴したリンクやブックマークを生かせるよう、旧 URL へのアクセスは mod_rewrite を使ってリダイレクト設定をしておきました。
が、ちょっぴり問題発生。はてなブックマークを見ると、
同じ記事への旧 URL と新 URL が別々のページとして登録されている様子。URL が異なるから仕方ないとは云え…ブックマーク頂いたユーザ数もリダイレクトしたい今日この頃です。
管理画面から[ウェブログの設定]-[アーカイブ設定]と移って
<$MTArchiveDate format="%Y/%m%d%H%M"$>/index.php
# ディレクトリインデックスに index.php を追加 DirectoryIndex index.html index.php # ついでに旧 URL 宛のアクセスを新しい URL に 301 Moved Permanetly でリダイレクト RewriteEngine On RewriteRule /archive/([0-9]+)/([0-9]+).php /archive/$1/$2/ [R=301,L]
drry+@->さんの "MultiViews のための拡張子戦争が終結"で公開されている remove-ext-from-permalink を導入させて頂きました。plugins ディレクトリにコピーするだけです。
# 実は 3.151 だとエラーになるため、以下の部分をハードコーディングして退化 # my $index = MT->instance->config('IndexBasename'); my $index = 'index';
拡張子の設定忘れで最初は動作しませんでした。管理画面から[ウェブログの設定]-[設定]と進んで、[アーカイブ・ファイルの拡張子]を php に設定して無事に動作。
とりあえず、ここまでの作業で終わってしまって問題ないはずですが、自分のサイトに飛ばしたセルフトラックバックした URL については修正しておこうと思います。単に気分の問題。phpMyAdmin を使ってデータベースを直接修正しました。
UPDATE `mt_tbping` SET `tbping_source_url` = substr (`tbping_source_url`, 1, 45) WHERE `tbping_source_url` LIKE 'http://www.magicvox.net/archive/%';
実際はデータベース上の該当するエントリを手作業で書き換えた後だったので、上の SQL 文はウソかもしれません(ぉぃ
寄せられたコメント (全 1 件中、最新 5 件まで表示しています)
私も同じだったので、はてなアイデアで要望してみました。
http://i.hatena.ne.jp/idea/12238
もしも要望と合致してたら投資してみて下さい・・・