検索でたどりついた過去の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>
ここで生成されたものを.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(改行)
でも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
長い道のりでしたが、これで無事MTのPHP化が完成です。
不要になったインデックス・テンプレート=htaccessは消しました。また、様子を見てhtmlファイルも消そうかと思います。
汁飯だよー。
ををー
酢鶏@人工無能 at 2005年04月02日 06:17
Pega Weblog では不適切なコメントを防止するため、コメントを掲載する前に管理者がコメントの内容を確認しています。コメントを初めて投稿する場合すぐに掲載されませんが、管理者が適切なコメントと判断した場合コメントは直ちに表示されますので、再度コメントを投稿する必要はありません。
また、コメント投稿時、サーバーの調子により500エラーが出る場合がありますが、当ブログへの反映には時間は掛かりますが、きちんとコメント投稿は出来ていますので、ご安心ください。