前回のMT4奮闘記より期間があいてしまった。実はMovable Type4で厄介な問題が発生したのでしばらく放置していた^^;
それと、新しい作るサイトはMT4を活用して作るつもりだった。しかし、公開してから別のツールに移行するのは色々と大変な作業となると思う。せっかくだから他のブログツールやCMSなどいろいろ物色していた。
他のブログツールやCMSの話はまた別の記事で紹介することにして、今回起こったMT4での問題について。
MT4をインストールしてから主に新機能のウェブページ周りについていじっていたが、こられらの機能の使い方やテンプレートの作り方が大方わかったので本来のブログ記事関連についてさわり始めたところ、ブラウザでカテゴリアーカイブへのリンクをクリックするとサーバーからページが無いよ、とエラーが表示される。ブラウザでソースを見るとこのリンクのURLがおかしい。
作っていたサイトの構造はドメインのルートにサイトのトップページがあり、その直下に/blogというディレクトリを作ってここにブログのトップページやアーカイブのディレクトリがある。このためMT4の公開パスの設定は以下のようにしていた。
・サイトURL http://www.xxxx.com/
・アーカイブURL http://www.xxxx.com/blog/
(サイトパス、アーカイブパスはそれぞれのURLに合致するよう指定している、ドメインはまだ秘密♪)
また、カテゴリアーカイブのマッピングは下記のように設定していた。そしてカテゴリアーカイブのファイル自体はこの形式のURLにちゃんと生成されており、直接URLをブラウザに指定するとカテゴリアーカイブのページが表示される。なお、サブカテゴリは作成していない。
・アーカイブマッピング category/sub-category/index.html
・生成されたファイルのURL http://www.xxxx.com/blog/cat29/index.html
しかし、カテゴリアーカイブのURLを生成するMTCategoryArchiveLinkタグから吐かれたURLはなぜかアーカイブURLの部分しか生成されておらず、また、カテゴリのリストには含まれる記事数の表示がされていない。
・生成されたURL http://www.xxxx.com/blog/
・正しいURL http://www.xxxx.com/blog/cat29/
(MTCategoryArchiveLinkタグが生成するURLはファイル名index.htmは出力されないようだ)
ちなみにこの状態でアーカイブURLを変更するとMTCategoryArchiveLinkタグが吐くURLは変更されたアーカイブURLと全く同一のURLとなる。このことから、どうもカテゴリアーカイブへのURLはアーカイブマッピングが無視された状態になっているようだ。なお、リンクのURLがおかしくなっているのはカテゴリアーカイブのみで個別記事や月別アーカイブ等については正常に生成されている。
一週間ぐらい、タグを打ち直してみたり、アーカイブURLをアーカイブパスを何度も設定し直す等色々試してみたが直らなかった。手詰まりになったので、試しに別のディレクトリにもう一つ新規でブログを作成し、同様な構造にしてみると・・・なんと正しいURLが生成されている。うーん、これは・・・
結局一度ブログ削除してもう一度作り直したら解決した。
テンプレートはあちこち触っていたのでブログを削除する前にリンクファイルで全てバックアップして、新しく作成したブログのテンプレートにもう一度リンクファイルを設定し直すことでリカバリーした。この時念のためデータベース(mySQLを使用)のデータをテーブルごと消去してクリーンな状態でブログを作り直している。
不可解な現象だが、考えられる原因として最初にブログを作ってから何回かサイトURLとアーカイブURLを移動させた。このときに内部データがおかしくなって正しいURLを生成できなくなったかもしれない。
※この記事は旧ブログ-レンズの向こう(@ブログ人)にて公開していたものです。