[サイトリニューアル]チカッパ&サブドメインでリダイレクトするときの注意
当サイトではアフィリエイト広告を利用しています。
PHP化はそんなに苦労することなく完成したので、この後はhtaccessを使ったリダイレクトの設定を行います。
htaccessを使ったリダイレクトは1回じゃ決まらないとあちこちで読んでいましたが、予想以上に苦労してしまいました(笑
htaccessを使ったリダイレクトの基本
htaccessを使ったリダイレクトの基本は至って簡単で、下の記述ルールを元に転送設定を書いて「.htaccess」というファイル名でサイトのトップページと同じフォルダに置いておくだけです。
・記述の基本
RedirectPermanent URL-path URL
URL-pathが元のアドレスで、URLが転送したいアドレスになります。
ここで注意が必要なのは、
URL-pathは「/aaa/」と記述するドキュメントルートからのパスで、
URLは「htttp://~」と記述する一般的なURLになるところですね
チカッパ&サブドメインではドキュメントルートに注意が必要
ドキュメントルートは「WebサーバがHTMLファイルを公開するためのディレクトリ」を意味していてる(小粋空間さんから引用です)のですが、これがサブドメインでの運用だとちょっとややこしいんです。
このサイトは、チカッパ&サブドメインで運用しているのですが、チカッパのサブドメインはサーバ上ではトップディレクトリのフォルダ名をサブドメインとして使用しています。
具体的に見ると本来なら「http://wwww.junkword.net/blog/」で表示されるところをサーバの設定で「http://blog.junkword.net/」とサブドメインでアクセスできるようにしてあるということです。
この場合のドキュメントルートはどこになるのか・・・??
これでかなり悩みました。そして禁断(?)の策として、チカッパのサポートに問い合わせをして、ドキュメントルート(質問ではディレクトリって聞きました)の確認をしました。で、サブドメインで運用している場合はドキュメントルートは「/blog/ここ」にということがわかりました。
これも具体的に見ると「https://blog.junkword.net/2009/08/a8a8netasid.html」のhtmlファイルのドキュメントルートは「/2009/08」となります。
逆にディレクトリで運用している場合は「/blog/」がドキュメントルートになります。
サーバ上は同じディレクトリにデータが入っていても、サブドメインで運用するかしないかでドキュメントルートが変化することがわかりました。この辺の違いはほんとわかりにくいですが、1回わかってしまえばもう問題はないですね。
.htaccess 用テンプレートの作成
ドキュメントルートのルールはわかりましたが、リダイレクトの設定は1URLにつき1行書かなければいけなくて、記事だけでも300以上、しかもファイル名の付け方を「yyyy/mm/entry-basename」にしているので、ファイル名に一貫性がなく手作業ではやっていられません。
そこで、これもまた小粋空間さんで公開されていた、「.htaccess 用テンプレート作成」を参考に.htaccess用のテンプレートをカスタマイズして対応しました。
実際に使用したファイル
RedirectPermanent <MTEntries><$MTEntryPermaLink$></MTEntries> <MTEntries><$MTEntryLink$>.php</MTEntries>
</MTArchiveList>
<MTArchiveList archive_type=”Category”>
RedirectPermanent <$MTArchiveLink$>index.html <$MTBlogURL$>archives/cat<$MTCategoryID$>/index.php
</MTArchiveList>
<MTArchiveList archive_type=”Monthly”>
RedirectPermanent <$MTArchiveLink$>index.html <$MTBlogURL$>archives/<$MTArchiveDate format=”%Y/%m”$>/index.php
</MTArchiveList>
変更したのは、ドキュメントルートの記述部分とURLの書き出しを「yyyy/mm/entry-basename」に対応するようにしました。
これを新規作成したインデックステンプレートに、
テンプレート名:リダイレクト
出力ファイル名:htaccess.txt
として、保存再構築をしてデータを生成します。
ただしこのままで使用できないので、htaccess.txtを生成したあとで、URL-path にある不要なURL部分の削除、URLの拡張子の変更と言った微調整が必要になります。
微調整が終わった「htaccess.txt」をサーバに戻し、ファイル名を「.htaccess」と変更すれば準備完了です。
あとは、既存のhtmlファイルにアクセスして、phpファイルにリダイレクトされることを確認できれば終了になります。
一通りの確認が終われば、不要になるhtmlファイルを削除します。
これで、やっとMovable TypeのPHP化は完結です。
htaccessを使ったリダイレクトでは、小粋空間さんの「.htaccess によるリダイレクト」を(目茶苦茶)参考にさせてもらいました、ありがとうございます。
Sponsored Links