パーマリンク問題

このブログの将来のことを考えるついでに、久しぶりにテーマでもいじってみようかと思ってみたら、表示に不具合があることを発見してしまいました。

開設以来、個別記事へのパーマリンクは次のように設定しておりました。

/%year%/%monthnum%/%day%/%hour%%minute%%second%/

URLの一意性を確保するには、%post_name%%post_id%を使うのが定石です。しかし、%post_name%だとURLに日本語(もしくはURLエンコードされた文字列)が含まれるのが嫌で、また%post_id%は正しい連番にならないし桁数も統一できないのが嫌で、これらを使わずにユニークなURLを得るため年月日に加えて時分秒を用いた上記のようなパーマリンクに設定した次第です。これまで何年もこの設定で問題なく使っておりました。

今日気づいたのは、これまで個別記事に表示されていた前後の記事へのリンクやコメントフォームなどが一切表示されなくなっていることに気づきました。テーマの問題かと思いましたが、別のテーマを適用してもやはり表示されません。さらに調べてみると、どうやら個別記事ではなくアーカイブのテンプレートが適用されてしまっているようでした。

しばらくブログから離れていいたのでどのタイミングでこれが起こったのかは不明ですが、どこかのアップグレードでURLに日付と時刻しか含まれない場合はアーカイブと解釈されるようになったと思われます。実際パーマリンク設定を%post_name%%post_id%が含まれるように変更すると問題なく個別記事として表示されました。

もちろんパーマリンク設定を変更すれば解決するわけですが、そうするとブログ内の別の記事からの参照、検索エンジンや他のサイトからのリンクは以前のURLのままなので「記事が見つかりません」となってしまいます。ブログ内でのリンクは手作業で書き換えればいいですが、検索エンジンの方はインデックスが更新されるのを待つしかありませんし、他のサイトからのリンクはどうしようもありません。

妥協策として、パーマリンクを

/%year%/%monthnum%/%day%/%hour%%minute%%second%/%post_id%/

としています。これで、以前のURLでアクセスされた場合でも、アーカイブのテンプレートで表示された状態(前後記事へのリンクとコメントが表示されない)にはなってしまいますが、とりあえず該当記事の内容は表示されます。ブログ内のリンクはそのうち書き換えます。

今後もブログを続けていく場合は、サーバー移転を機にまた新しいブログを立ち上げ、こちらのブログは引っ越しだけして閲覧のみ(更新なし)で放置する方向になりそうです。1000件以上の記事に個別にリダイレクトを設定するのも大変ですからね。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください