PHP化してみました

MTが随分重たくなってきたので、↓を参考にPHP化してみました(今んとこFOX通信のみ)。

MTのPHP化とページ分割 (CROSSBREED クロスブリード!)
以前から懸念していたpermalink(個別記事へのリンク)のIDの件で
やろうやろうと思っていて中々手がだせずにいたphp化及びカテゴリページのページ分割を完了させた。

とりあえずやることとしては、

  • アーカイブのPHP化weblogの設定でアーカーブファイルの拡張子をPHPに変える
  • インデックスのPHP化テンプレートの設定で出力するファイルの拡張子をPHPに変える
  • 古いhtmlファイルの削除FTPソフトで手作業で削除

ここまでは全然問題なく行きました。
問題が発生したのは、htmlからphpへのリダイレクト。

本当なら、

ARTIFACT —人工事実— | MovableTypeのページ分割/Permalinkの変更
それと.htaccessのRedirect permanentを利用して、
旧URLにアクセスした場合、新URLに飛ぶようにしました。

「Templateの編集」⇒「新しい Index Template を作る」で下記テンプレートを追加、
再構築でファイルを生成、そのファイルの内容を.htaccessファイルに追加します。

で紹介されている方法を使えばいいんですが。
要するに、htaccessでテンプレート一個作ってhtaccess.txtってファイル出力させるようにして、

Redirect permanent /archives/<$MTEntryIDpad="1">.html<$MTBlogURL$>/archives/<$MTArchiveDate format="%Y%m"$>/<$MTEntryKeywords dirify="1"$>.html

って記述してやれば自動的にMT向けの内容が入ったhtaccess.txtできあがるので、
それを本物の.htaccessに追記してあげればいい、ということ。
非常に便利な方法なんですけどね。

ウチでは個別アーカイブの名付けにIDを使わず、アーカイブ設定もせず、
デフォルトのままなもんで、個別アーカイブが

post_066.html

とか

MT3.16_01.html

とかっていう規則性がないファイルの名付けになってしまっていると言う…
だからせっかくの便利な方法をそのまま使えない(涙)
このファイル名の名付け規則をどうにか見つけ出さないと、
htaccessを使ったリダイレクトをするにも全て手作業になってしまうので、頭抱えてる最中です。

今のところなんとかフォルダの階層までは自動化できたので、
あとはファイル名をちくちくと記入して行くか…
ファイル名をどうにかして自動で引っ張ってくる記述方法がないものか、ここいらへんを現在調査中です。

2005/06/05 14:20追記

調査してもよくわからなかったので(汗)結局手動で.htaccessを直しました。
ただ600以上あるエントリを一個ずつ書いて行くのは間違いなく気が狂うので(笑)、
手数は多いけど比較的簡単なやり方を考えてみました。

用意するもの:エクセル&テキストエディタ(推奨:NoEditor

<その1:リダイレクト元のパス一覧を作る>

  1. htaccessの書き出し用テンプレート作成
  2. 作ったテンプレートに次のタグを書いてhtaccess.txtを生成
    <$MTArchiveLink>
  3. できたテキストを一回ダウンロードしてエクセルで開く
  4. 既に拡張子がphpになってるので、この部分をhtmlに置換
  5. 同様にいらないパスの部分も置換で削除する
  6. 一旦保存

<その2:リダイレクト先のパス一覧を作る>

  1. 個別アーカイブのファイルの名前付け規則を以下の様に変更(アーカイブの設定のところで行う)
    <$MTArchiveDate format="%Y/%m/%d-%H%M"$><$MTEntryKeywords dirify="1"$>.php
  2. 一回全部再構築する
  3. <その1>で作ったhtaccess.txtを念の為再構築してダウンロード(最初のと別のところの方がいいかも)
  4. これもエクセルで開いておく

<その3:htaccessのリダイレクト用の記述一覧を作る>

  1. <その1>で作ったエクセルを開く
  2. 先頭に列を挿入し、Redirect permanentの記述を一番下までコピーする
  3. 3列目に<その2>で作ったリダイレクト先のパス一覧を列ごととコピーする
  4. テキストファイルとして保存する

<その4:.htaccessとして動くように整形>

  1. 保存したテキストファイルをテキストエディタ(推奨:NoEditor)で開く
  2. タブをスペースに変換する(NoEditor:メニューバーから整形→タブインデントをスペースに変換)
  3. 連続スペースを1文字スペースに変換(NoEditor:全文選択→メニューバーから整形→選択範囲を文字変換→連続するスペースをひとつに)
  4. サーバー上の.htaccessファイルに出来上がった記述全てを追加

ちょっと手間がかかりますが、一個ずつ.htaccessに記述することを考えれば相当マシではないかと思います。

途中経過のエクセルファイルはこんな感じです。

htaccess_sample.xls

2005/06/05 19:21 追記

ついでにカテゴリーアーカイブと月別アーカイブのページ分割もしちゃいました。
具体的なやり方はPHP化で参照させていただいたのと同じエントリに書いてあるので省略します。
次にチャレンジするのはモジュール化だな。

2005/07/11 12:27 追記

月別アーカイブを分割するとカレンダーからのリンクが死んじゃうので、
月別アーカイブの分割はやめました。

PHP化してみました” に3件のコメントがあります

  1. はじめまして。友梨と申します。
    私もエントリアーカイブのPHP化に伴うリダイレクトに大変てこずっていました。
    他のサイト様がされている方法を使ってみてもうまくいかなかったのですが、
    こちらのエントリを参考にさせていただいたところ
    非常にスムーズに行うことが出来ました。
    ご丁寧な解説、本当にありがとうございました。

  2. 友梨さん、はじめまして。
    エントリのファイル名がデフォ設定のままだと困りますよね(^^;)
    こんな拙い説明ですが、お役に立てて幸いです(^^)

コメントは受け付けていません。