テーマの確定と、仮想ドキュメントルート
まず、URLからドメインとパス情報を解析して、どのブログを表示するかを決定します。
この仕組みにより、1つのCMS内で複数のブログ(サイト・コンテンツ)を構築でき、それぞれに異なるテーマを適用できます。
ブログ判定の流れ
ドメインを確認し、ブログ設定に一致するものを探します。
ドメインが同じ場合は、URLパスの先頭部分(ブログコード)を確認して、該当するブログを特定します。
例:3つのブログ構成
ブログ名 | ドメイン | コード | 備考 |
---|---|---|---|
ルートブログ |
| (なし) | メインサイト |
子ブログ1(お知らせ) |
|
| ルートブログ配下のパスで運用 |
子ブログ2(採用サイト) |
| (なし) | サブドメインで独立運用 |
URLからのブログ決定例
アクセスURL | 判定されるブログ |
---|---|
| ルートブログ |
| ルートブログ |
| ルートブログ |
| 子ブログ1 |
| 子ブログ1 |
| 子ブログ1 |
| 子ブログ2 |
| 子ブログ2 |
| 子ブログ2 |
| 子ブログ2 |
| 子ブログ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構成を変更してもテンプレート側のパス指定を修正する必要がなく、保守性の高いテンプレートを作成できます。