- 2009年3月 9日 19:03
- Diary | Movable Type
前回、Movable Typeのphp化を行って、.htaccessを利用して、
php化したファイルへのリダイレクトによる転送設定を
行ったところまで話をしました。
しかし、カテゴリや、月別、日別アーカイブ配下で、全くリダイレクトされず、
「転送設定がループしています」というエラーがでてしまい、結局、
php化計画は頓挫してしまうことになってしまいます。
そもそも、.htaccessって何?
というところからスタートしている私にとっては、.htaccessを
理解することからはじめなければなりません。
色々、ネットで情報を収集することからはじめます。
その中でも非常に参考になったのが、
「さくらのレンタルサーバ非公式FAQ」の.htaccessFAQと「ミケネコ研究所」の
「htaccess リファレンス > リダイレクト 」です。
そこで、わかったのは、今の状態は「無限ループ」と呼ばれる
非常に危険な状態だということ。
サーバーに大きな負荷がかかり、下手したらダウンしてしまうとか。
とにかく急いでなんとかしなくては(汗。)
大まかに、.htaccessで注意すべき点が以下になります。
- 少しでも記述が間違っているとエラーがでる。
- 記述の最後は改行にする。
- FTPアップロードの際はアスキーモードで転送する。
ほかにも、サーバーによって使えないコマンドがあったりするのですが、
リダイレクトのコマンド自体はしごく簡単な記述なので、
本来、あまり難しいものではありません。
しかし、その単純さゆえ、深い落とし穴があることを思い知らされます。
とりあえず、「さくらのレンタルサーバ非公式FAQ」と「ミケネコ研究所」の
記事を参考に、.htaccessの記述などを確認します。
しかし、どう修正しても「無限ループ」から抜け出せません。
当時、私の記述はこうなってました。
カテゴリ「diary」の場合
Redirect permanent /diary/ http://marqueemoon.info/diary/index.php
そこで、Movable Typep備忘録のbzbellさんからのアドバイスをもとに
以下に修正してみます。
Redirect permanent /diary http://marqueemoon.info/diary/index.php
最初の絶対パスの「/」を抜いてみました。
しかし、「無限ループ」から抜け出せません。
何故「無限ループになってしまうのか」?
「ミケネコ研究所」の記事を読んでいくうちになんとなく理解してきました。
私の記述した.htaccessだと、root/diaryへのアクセスを
から、同じ、root/diaryのindex.phpへリダイレクトする指示になっています。
ブラウザとサーバーの動きとしてはこうなっているわけです。
ブラウザの要求: http://marqueemoon.info/diary/
サーバの返答 : http://marqueemoon.info/diary/index.phpリダイレクトせよ
ブラウザの要求: http://marqueemoon.info/diary/index.php/index.php/
サーバの返答 : http://marqueemoon.info/diary/index.php/index.php/リダイレクトせよ
ブラウザの要求: http://marqueemoon.info/diary/index.php/index.php/index.php/
サーバの返答 : http://marqueemoon.info/diary/index.php/index.php/index.php/index.php/ リダイレクトせよ
ブラウザの要求: http://marqueemoon.info/diary/index.php/index.php/index.php/index.php/index.php/
(以上、無限に繰り返し)
仮に、以下の様に記述を変えた場合、
Redirect permanent /diary/index.hmtl http://marqueemoon.info/diary/index.php
http://marqueemoon.info/diary/index.html
と、URLをじか打ちすれば、リダイレクトされますが、
ブログ内のリンクからアクセスした場合、「404 Notfound」になります。
結局、今の自分のスキルでは、同じディレクトリ内で、
index.htmlから、index.phpへとリダイレクトさせるのが難しいと、考えた私。
php化したアーカイブフォルダを、別ディレクトリにするという
強行手段をとります。
Movable Typeのブログの「公開設定」を選ぶと、ブログのURLと、
サイトパスが入力できるフィールドがでてきます。
当然、ここはロックがかかっているので、さわりません。
(ブログのサイトパスごと移動するなら別ですが。)
その下に、「アーカイブをサイトパスとは別のパスで公開する」という
チェックボックスがあるので、チェックを入れると、
アーカイブURLとアーカイブサイトパスの入力ができるようになるので、
ここに、あらかじめFTPソフトなどで作っておいた、アーカイブフォルダの
URLと、サイトパスを入力します。
今回は、「archives」となんのヒネリもないフォルダ名にします。
(ヒネったところで、仕方ないのですが。)
ついでに、各カテゴリのフォルダ名もデフォルトのままで、
「cat34」とかなっていたので、カテゴリ「バイク」だったら
「bike」といった具合にわかりやすい名前にかえます。
そして、再構築・・・
あわせて、.htaccessの記述も修正します。
Redirect permanent /diary/ http://marqueemoon.info/archives/diarys/
アクセスしてみると・・・
おぉ、遂にリダイレクト成功!!
しかし、全部のカテゴリを試していくうちに、どうも一部の
カテゴリだけリダイレクトせず、「Not fond」になってしまう。
どうも、「音楽レビュー」とか「愛車遍歴」とかカテゴリ名に
漢字を使っているものがうまくいかない。
ちなみに、「音楽レビュー」のフォルダ名は「musicrevue」
「愛車遍歴」なら、「bikehistory」としてます。
両方とも、当サイトのメインコンテンツ。
特に「愛車遍歴」など(少ないながらも)アクセスがあるので
なんとかせにゃイカン。
と、ここで、また.htaccessの記述を色々試してみるのですが、
結局解決せず、カテゴリフォルダ名をMovable Typeデフォルトの
「cat32」とかにかえました。
ようやく、php化とリダイレクトの設定が完了。
もう、一度、全ページを一通りチェックした問題なければ、
htmlファイルを削除。
怪我の功名というか、結果的にアーカイブフォルダを
別のディレクトリにしたことで、旧htmlファイルの削除が楽になりました。
ふぅ~。
ここまで、延べ3日以上かかってしまいました。
php化そのものより、.htaccessの扱い方が大変でした。
結局、無限ループの問題も、
(Movable Typep備忘録のbzbellさんは、
同じディレクトリ内でのリダイレクトで問題なかったそうで。)
漢字カテゴリ名とフォルダ名の因果関係もわからず、
問題を解決したとゆうより、封印したといったほうが
適切な表現の結果になりました。
※ちょうど、php化が完了した後、Movable Typep備忘録のbzbellさんから
アドバイスをいただきました。
bzbellさんの場合、デフォルトインデックスの優先度を、
index.htmlより、index.php指定にしていするため、.htaccessに以下の記述を
追加しているそうです。
DirectoryIndex index.php index.html .ht
と、こんな具合に苦節の末、なんとか達成したphp化。
その、劇的な変化の恩恵はあるテンプレートセットを使用したときに
味わうことになりますが、それは次回に
ちなみ、php化したら、Googleページランクが0になってしまった。
URLが変わったんだから仕方なしです。
- Newer: Movable Typeオワタ
- Older: ブログ補完計画(1)PHP化前編(うぅ~。)




