テーマの確定と、仮想ドキュメントルート


まず、URLからドメインとパス情報を解析して、どのブログを表示するかを決定します。
この仕組みにより、1つのCMS内で複数のブログ(サイト・コンテンツ)を構築でき、それぞれに異なるテーマを適用できます。

ブログ判定の流れ

  • ドメインを確認し、ブログ設定に一致するものを探します。

  • ドメインが同じ場合は、URLパスの先頭部分(ブログコード)を確認して、該当するブログを特定します。

例:3つのブログ構成

ブログ名

ドメイン

コード

備考

ルートブログ

example.com

(なし)

メインサイト

子ブログ1(お知らせ)

example.com

news

ルートブログ配下のパスで運用

子ブログ2(採用サイト)

recruit.example.com

(なし)

サブドメインで独立運用

URLからのブログ決定例

アクセスURL

判定されるブログ

https://example.com

ルートブログ

https://example.com/xxxxx/

ルートブログ

https://example.com/xxxx/xxxx.html

ルートブログ

https://example.com/news/

子ブログ1

https://example.com/news/xxxx/

子ブログ1

https://example.com/news/xxxx/xxxx.html

子ブログ1

https://recruit.example.com/

子ブログ2

https://recruit.example.com/xxxx/

子ブログ2

https://recruit.example.com/news/

子ブログ2

https://recruit.example.com/news/xxxx/

子ブログ2

https://recruit.example.com/news/xxxx.html

子ブログ2

テーマの確定

ブログがURL解析によって確定すると、そのブログに設定されているテーマが決まります。
テーマは、themes ディレクトリ直下のフォルダとして管理され、各フォルダが1つのテーマに対応します。

themes/site
themes/blog
themes/member

仮想ドキュメントルート

決定されたテーマフォルダは、そのブログにおける仮想的なドキュメントルートとして扱われます。
テンプレート内でのファイル指定やリンクは、この仮想ドキュメントルートを起点としたパスで記述します。

例:画像ファイルの参照

例えば themes/site/images/sample.jpg の画像を表示したいときは、以下のように指定します。

<img src="/images/sample.jpg">

実際の動作

テンプレートが解決されると、CMSが実際のディレクトリ構造に合わせてパスを自動書き換えします。上記の例では、ブラウザ上では以下のURLとしてアクセスされます。

https://example.com/themes/site/images/sample.jpg

この仕組みにより、テーマ内のテンプレート構造とブログのURL構造が分離されます。
そのため、後からURL構成を変更してもテンプレート側のパス指定を修正する必要がなく、保守性の高いテンプレートを作成できます。