HOME  »  , , , ,  » 個別記事URLの固定化を行いました

個別記事URLの固定化を行いました

2005/05/02 | Comments & Trackbacks : 0

私はロリポ時代に個別記事のアドレスを固定化していなかった(「ウェブログの設定→アーカイブの設定」で “個別エントリーアーカイブ” が空欄なら私の仲間w)ので、PermalinkはMT側で適当に付けているという状態でした。
この状態でデータを書き出して、新たに読み込ませると、削除したエントリなどの影響で、新旧でエントリの連番がずれる現象が起こります。
簡単に言うと、今までの個別記事のURLが全部変わってしまうようです。
これを回避するために個別記事URLの固定化作業とリダイレクト設定を行う事にしました。

ちなみに、あらかじめこの設定をしておくと、zaxさんちの記事で指摘されているエントリの再編集時にファイル名が変わるバグも発生しなくなるので、エントリ数が少ない内に手を打っておいたほうがいいと思います。
参考にさせて頂いたのは以下のエントリです。ありがとうございました。

アドレスを決めうちする方法はいろいろあるのですが、私は各記事にキーワードを加え(投稿画面の「この画面の表示をカスタマイズする 」でキーワード欄を表示させる事ができます)、これをアドレス生成時に利用する事にしました。
でも、設定としては投稿時間を利用してアドレスを決めうちしちゃった方が楽かも知れないです。

以下はキーワードを利用した場合のやり方です。
(投稿時間を用いる場合はキーワードに関する手順を全部すっ飛ばして、アーカイブテンプレートの設定からやればOkだと思います。)

  1. 各記事に対するキーワードの設定を行う
    エントリ編集画面で適当に記事のキーワードを英数字で入力して保存、を全てのエントリ分繰り返します。
    ※私の場合はすでに保存・再構築が不可能な状態だったので、書き出したエントリデータの “KEEWORD”欄に直接記入。
  2. リダイレクト用のテンプレを作成する
    「新しいインデックスプレートを作る」をクリック。

    • テンプレートの名前:適当
    • 出力ファイル名:○○○(英数字).html
    • テンプレートの中身(私の場合。設定は適宜変更してください)

      Redirect permanent /archives/<MTEntries><$MTEntryID pad=”1″$>.php</MTEntries> <$MTBlogURL$>archives/<$MTEntryDate format=”%Y%m/%d”$><$MTEntryKeywords dirify=”1″$>.php<br /></MTEntries></MTArchiveList>

    と設定。
    できたら保存・再構築する。

    ※上記の設定でデータを作成したのですが、出力時に全然違うアドレスが出てきてしまいました。
    多分青字部分の設定がMTのデフォルト設定と違うせいだと思うのですが、どんな記述になっているのかよく分からなかったので、元記事のデータをそのまま流用しています。
    ちなみに私の場合、キーワードを付加した元データを新サイトに読み込ませた状態でこの作業をしています。

  3. 上で作ったファイルにアクセスすると、リダイレクト設定の書き出しが終わっているので、これをテキストエディタなどにコピペしておく。
    以下のような形式で出力されると思います。

    Redirect permanent /archives/2005/04/post_235.php http://blog.open-arms.biz/archives/200504/29iten.php
     ・
     ・
     ・
    

    ここで元記事のURLと出力されたURLにずれがないか確認。
    ずれている時は手で修正。
    私の場合はそもそもの設定がダメ→全滅だったので元記事のURLを参照しつつ、全てのエントリについてコピペする羽目になりました。

  4. アーカイブ・テンプレートの設定を行う。
    「ウェブログの設定」→「アーカイブの設定」画面でアーカイブ・ファイルのテンプレートの設定を行います。
    私の場合は以下の通りです。

    • 個別エントリーアーカイブ
      <$MTEntryDate format=”%Y%m/%d”$><$MTEntryKeywords dirify=”1″$>.php
    • 個別記事・本文部(記事をモジュール化している場合のみ)
      <$MTEntryDate format=”%Y%m/%d”$><$MTEntryKeywords dirify=”1″$>_body.php
    • 個別記事・追記(記事をモジュール化してている場合のみ)
      <$MTEntryDate format=”%Y%m/%d”$><$MTEntryKeywords dirify=”1″$>_more.php

    終わったら全て再構築する。

  5. 個別記事URLが全て変わった事を確認し、先ほどコピーしておいたリダイレクトの設定を.htacsessファイルに記入し、index.phpと同じ階層にアップロードする。
    すでに.htacsessがある場合は、記述の最後から続けて記入する。

新アドレスで個別記事がきちんと表示されているようであればおしまいです。

失敗話なのですが、今回、私はサーバー移転とデータ移行を同時に行ったため、新サーバーには元の個別記事ファイルが存在していない状態になり、このため当初はリダイレクト設定が404エラーを起こしてしまっていました。
これを回避するために、旧サーバーから個別記事ファイル(本文・追記部のファイルはいらない)をURLと同じフォルダ構造でコピペした所、うまく動作するようになりました。

私とそっくり同じパターンで移転作業をする方は注意した方がいいかもしれません。

Popularity: 11% [?]

Google Adsense

Comments & Trackbacks : 0