PHP化と「.htaccess」

以前から考えていましたが、なかなか理解できていなかったのと、
暇がなかったのもあってやれなかったことがあります。

それは、

『アーカイブのPHP化とページ分割』

参考URLはすでに熟読していたのですが、
理解不能な部分もあり、やめてました。

やっとふんぎりがついた?ので、
挑戦してみることにしました(^^;)

参考URL:
ARTIFACT ―人工事実― | MovableTypeのページ分割/Permalinkの変更
MTのPHP化とページ分割 (CROSSBREED クロスブリード!)

今回は、とりあえず、「PHP化」に挑戦です
PHPの導入はかなり前にやっていたので、問題ありません
PHPの導入については、他サイトを参照ください(^^;)

順番が大事ですので、気をつけましょう。
(まぁ、やり直せますから大丈夫ですけど。。。)


●STEP.1

まず、「.htaccess」ファイルを作成します。
なぜこのファイルを作成するのか?、なぜ最初に作らなくてはならないか?です。

各アーカイブファイルは今のところ、「.html」という拡張子になっています
PHP化ということなので、それが「.php」になります。

今までGoogleなどの検索サイトせっかくリンクが張られているのに、
そこから飛んできた人が「.html」を表示できずに途方にくれてしまいます。

そこで、Apacheディレクティブファイル?である、「.htaccess」に、
「.html」ページから「.php」へジャンプしてくれるように記述すればよいのです。

そこで私の場合、

・個別ページのアーカイブ
・日別アーカイブ
・月別アーカイブ
・カテゴリーアーカイブ

の4つをすべてPHP化することにしましたので、
すべてに対して、リダイレクトを作成しなければなりません。


まず、Movabletypeの管理ページテンプレート>→「新しいインデックス・テンプレートを作る」
をクリックします。

・テンプレートの名前
 「個別アーカイブ-htaccess用」(←なんでもいいです、適当に)
・出力ファイル名
 「individual_htaccess」(←なんでもいいです、適当に)
・テンプレートの中身

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

同様に、日別アーカイブ月別アーカイブカテゴリーアーカイブ
「.htaccess」テンプレートを作成します。

・日別アーカイブ用

<MTArchiveList archive_type="Daily">
Redirect permanent <$MTArchiveLink$>
<$MTBlogURL$>
archives/<$MTArchiveDate format="%Y/%m/%d/"$>index.php
</MTArchiveList>

・月別アーカイブ用

<MTArchiveList archive_type="Monthly">
Redirect permanent <$MTArchiveLink$>
<$MTBlogURL$>archives/
<$MTArchiveDate format="%Y/%m/"$>index.php
</MTArchiveList>

・カテゴリーアーカイブ用

<MTArchiveList archive_type="Category">
Redirect permanent <$MTCategoryArchiveLink$>
<$MTBlogURL$>archives/cat_<$MTCategoryID$>/index.php
</MTArchiveList>

これでそれぞれ出来上がったものを「.htaccess」に追加します。


●STEP.2

そして、いざ、PHP化です。

「ウェブログの設定」「アーカイブの設定」にある、
それぞれのアーカイブ種類の「アーカイブ・ファイルのテンプレート」に、
上記で設定したファイル名を設定します(で書かれた部分)

これが相互に一致していないと大変なことになります(笑)

設定、保存したら、「すべてを再構築」してください。


●STEP.3

再構築が終わったら、上記で作成した、「.htaccess」をアップロードします。


と、ここで気がついたのですが、
上記のテンプレーで作成した「.htaccess」では
うまくリダイレクトしないことに気がつきました。

「.htaccess」の記述として、

Redirect permanent 旧アドレス 新アドレスの絶対URL

となるわけですが、旧アドレスの部分絶対URLでは
リダイレクトしてくれないようです。。。
相対URL?じゃないとだめみたいです。
※)追記参照


ですので、上記で作成した「.htaccess」の中の、
旧アドレスの中のホスト名を削除してうまくいきました。
(私の場合「http://www.multiburst.net」)


これで完成です!!


-------------------------------------------
2006/06/26 補足
日別やカテゴリー別のアーカイブ用「.htaccess」だと、
最後に「index.html」がついてしまいます。

本来は、スラッシュ「/」で終わってるはずなんですが。。(^^;)

ということで、個別エントリー以外のリダイレクト行の
元URLの「index.html」を削除。


------------------------------------
2006/05/24 追記
「.htaccess」の書き方については、
こちらを参照してみてください。


Movable Typeブログテンプレート&デザインガイド―マルチユースなテンプレートによる効率的なブログ制作
エ・ビスコム・テック・ラボ
毎日コミュニケーションズ (2005/06)
売り上げランキング: 1,627