サイト構成のリニューアル
最近、いくつか個別記事のURLが変わってしまった。原因は個別記事のURLに使用していたカテゴリー構成を弄ったからだ。なので今後の事を考えて個別記事のURLを現在のカテゴリ基準から日付け基準に変えた。
現在の設定(カテゴリ基準のURL)
%_c/b%e%x
MTタグに置き換えると次のような感じ。
<$MTSubCategoryPath separator="_"$>/b<$MTEntryID pad="1"$><$MTBlogFileExtension$>
今後の設定(日付け基準のURL)
%y/%m/b%e%x
こちらもMTタグに置き換えると次のような感じ。
<$MTArchiveDate format="%Y"$>/<$MTArchiveDate format="%m"$>/b<$MTEntryID pad="1"$><$MTBlogFileExtension$>
このように、アーカイブテンプレート「ブログ記事」のアーカイブマッピングを変更するだけ。あとは再構築をすればファイル・リンク等が新しい設定のもに置き換わって、完了。
リンク切れを防ぐ
サイト内だけなら再構築までで良いのだが、外部のサイト、たとえば検索エンジンから来る事を考えると、ただマッピングを弄っただけだとリンク切れが大量に発生する。そこで.htaccessを使って旧ファイルへのアクセスを、新ファイルへ転送する。私の場合、.htaccessはインデックステンプレートに登録してあるので、MTタグを使って以下のように記述する。
RedirectPermanent /blog/report/b000*.htm <$mt:link entry_id="*"$>
上のようなのを.htaccessへ記事の数だけ記述した。カテゴリ構成を弄ってしまったために個別に記述せざるを得なかった。grepを使って生成したので手間はかからなかったけど。参考にする場合はご自分の環境に合わせて適宜に。
余談:何故ファイル名が英字1文字と数字6文字の7桁(b000045等)であるか。
これはファイル管理を便利にするためです。
先頭の英字1文字はブログディレクトリの頭文字です。そのためファイル名を見るだけでどのブログのファイルかすぐに判別できます。ローカルにファイルをバックアップした際に重宝します。
数字6文字のMTEntryIDはMTのシステム全体で付けられます。なのでMTでいくつブログを作っていてもIDは絶対に重複しません。
参考:今回の記事で出てきたアーカイブマッピング
- %_c
- サブカテゴリーまでのパス(区切りは_)
- %y
- 4桁の年
- %m
- 2桁(0埋め)の月
- %e
- 6桁(0埋め)のエントリーID
- %x
- 設定ページで指定したアーカイブの拡張子
コメント[0]
コメント投稿フォーム
コメントを投稿するにはJavaScirptが必要です。ブラウザのJavaScriptを有効にしてください。
トラックバック[0]
トラックバックはまだありません。
コメントはまだありません。