Pega Weblog


Movable Type、自転車、気になったニュース等をアトランダムに書いています。

      2005年 4月 1日(金)   赤口  今日は何の日?

Home Movable Type ≫ MTのPHP化-.htaccess編

MTのPHP化-.htaccess編

検索でたどりついた過去のhtml記事にアクセスすると自動的にphpの記事にredirectしてくれる方法です。

大まかな方法は、MTのインデックスファイルで.htaccessの中味をつくり、これをサーバーの.htaccessにコピーするという方法です。

MTのインデックス・テンプレートでテンプレートを1つ作ります。
テンプレートの名前や出力ファイル名は適当で構いません。私は、テンプレートの名前=htaccess、出力ファイル名=htaccess.phpとしました。
テンプレートの中身は以下としました。

<MTArchiveList archive_type="Individual">
Redirect permanent /pegablog/archives/<MTEntries><$MTEntryID
pad="1"$>.html</MTEntries>
<$MTBlogURL$>pegablog/archives/<$MTArchiveDate
format="%Y"$>/<MTEntries><$MTArchiveDate
format="%m/%d_%H%M"$>.php</MTEntries>
</MTArchiveList>

再構築オプションにチェックを入れ、保存、再構築すると、サーバーにhtaceess.php(html)が作成されています。
なお、Redirect permanentからの/blog/archivesはhttp://○○.comより下、通常は、publiuc_htmlからを記載します。また、<$MTBlogURL$>blog/archives/も自分の環境に合わせてください。
さらに、<$MTArchiveDate format="%m%d_%H%M"$>.phpもMTのアーカイブ・ファイルのテンプレート設定の個別ファイルと同じにしてください。

ここで生成されたものを.htacessにコピー(.htacessがなければ作成してサーバーにUploadします。Upload先は、index.phpたindex.htmlがあるトップです)します。
これで、旧htmlにアクセスがあった場合、新phpにredirectされます。

が、ここで問題発生。
redirectされるどころが、Internal Server Errorが出て今まで閲覧可能だったエントリーが閲覧できません!

.htacessの中味が原因でした。本来は次のとおり1行ずつです。これが、途中で改行されていました。

つまり、本来は

Redirect permanent /pegablog/archives/00859.html http://pegablog.clavisnote.com/archives/2005/03/30_1748.php(改行)
Redirect permanent /pegablog/archives/00858.html http://pegablog.clavisnote.com/archives/2005/03/29_1755.php(改行)

のところ、

Redirect permanent /pegablog/archives/00859.html(改行)
http://pegablog.clavisnote.com/archives/2005/03/30_1748.php(改行)
Redirect permanent /pegablog/archives/00858.html(改行)
http://pegablog.clavisnote.com/archives/2005/03/29_1755.php(改行)

と途中で改行されていました。
そこで、テンプレートの中身を変更し、(ただし、<$MTEntryIDpad="1"$>.htmlと</MTEntries>間に半角スペースをいれること)再構築と.htacessへのコピー。

でもredirectされません。

次の原因は、php化前のhtmlファイルですが、当サイトでは、000859.htmlのようにMTEntryIDを使ったものでなく、/2005/03/firefox.htmlのように年月とキーワードで形成されていました。
今までの方法では、000859.htmlがhtaccess.php(html)に生成されてしまいます。
色々試したのですが、良い方法がわからず、結局、我楽: PHP化とページ分割。を参考にして次の通りとしました。

<MTArchiveList archive_type="Individual"> Redirect permanent /pegablog/archives/<$MTArchiveDate format="%Y/%m"$>/<MTEntries><$MTEntryPermalink$></MTEntries> <$MTBlogURL$>archives/<$MTArchiveDate format="%Y"$>/<MTEntries><$MTArchiveDate format="%m/%d_%H%M"$>.php</MTEntries> </MTArchiveList>

これで、htaccess.phpを生成して、不要な箇所をエディタで削除して *1 して、完成です。
これを、サーバーの.htaccessにコピーしたら、おお、redirectした!!

なお、今回<$MTEntryPermalink$>を使ったので、PHP化を先にしてしまうと、

Redirect permanent /pegablog/archives/2005/03/30_1748.php http://pegablog.clavisnote.com/archives/2005/03/30_1748.php

とredirectする意味のない内容になってしまうので、MTがhtmlの状態で.htacessを作り、それからMTをPHP化しないとダメです。

長い道のりでしたが、これで無事MTのPHP化が完成です。

不要になったインデックス・テンプレート=htaccessは消しました。また、様子を見てhtmlファイルも消そうかと思います。

*1 : 私はExcelの文字列関数を使いました


Posted by pega at 2005年04月01日 15:50     
Hatena Bookmark: MTのPHP化-.htaccess編 | del.icio.us: MTのPHP化-.htaccess編 | MM/Memo: MTのPHP化-.htaccess編 | web拍手ボタン | ⇒English | ⇒大阪弁 | Clip!!
コメント酢鶏巡回中 酢鶏」は人工無能によるコメント投稿を行います。

汁飯だよー。
ををー

Posted by: Guest 酢鶏@人工無能 at 2005年04月02日 06:17
コメントする。なお、名前に@nekoを付けるとネコ語になるにゃ
サイン・イン 後、「サイン・インを確認しました」の表示が出ない場合は、お手数ですが、ブラウザの更新ボタンを押してください。
Pega Weblog では不適切なコメントを防止するため、コメントを掲載する前に管理者がコメントの内容を確認しています。コメントを初めて投稿する場合すぐに掲載されませんが、管理者が適切なコメントと判断した場合コメントは直ちに表示されますので、再度コメントを投稿する必要はありません。
また、コメント投稿時、サーバーの調子により500エラーが出る場合がありますが、当ブログへの反映には時間は掛かりますが、きちんとコメント投稿は出来ていますので、ご安心ください。




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます。)
コメント編集ボタン: (?)Help

-- ボタンの説明 --
size : フォントサイズ変更「*」この部分を1~7のお好きな数字に変えてください。数字が大きいほど文字も大きくなります。
color : *** のところに 色名を入れてください。
C : タグではさんだ文字列を センタリング(中央寄せ)します。
B : 文字を太字にします。
I : 文字を斜体にします。
U : 文字に下線を引きます。
S : 文字に打消線を引きます。
" : " と " で はさむようになります。
& : &マークを 挿入します。
nbsp : 半角スペースが入ります。
nobr : タグではさんだ文字列には 改行が入らず、一行で表示されます。
link : リンクを貼れますがスパム対策の為使わないでください…
img : 画像を貼ります。画像のurlと代替テキストを入れてください。
UL : 順序性のないリストを表示するときに使います。type属性を付けることができます。
OL : 順序性のあるリストを表示するときに使います。type属性を付けることができます。
LI : リストの項目になります。 <ul></ul> や <ol></ol> の中で使います。
P : はさんだ文字列が ひとつの段落になります。</p> の次が 一行分 空きます。
b-quote : 文章を引用します。
pre : ソース中のスペース、改行等を 等幅フォントでそのまま表示します。
Close Tags : コメント内のタグを全て閉じます。
Dict : このボタンは、タグ関係ありません。投稿画面で、調べたい文字を選択しておいて このボタンを押すとDictionary.com の 検索結果画面に つながります。ただし、日本語には対応してません。けることができます。

▼絵文字を表示▼

テキストエリアのサイズと文字サイズは右下のアイコンで変えることができます。

ご利用のブラウザ、設定ではご利用になれません。


手動で送信されたコメントであることを示すために、上のボックスに表示されている通りに数字を入力してください。

「MTのPHP化-.htaccess編」 へのトラックバック
Pega Weblogのトラックバックポリシー
このエントリーへのトラックバックURL :

このエントリーのリンクタグ :
Pega Weblogからトラックバックした先のURL
以下のリストはこの「MTのPHP化-.htaccess編」を参照しています(0)。
関連している(かもしれない)書籍
関連している(かもしれない)記事
関連IT用語 by e-Words