1 つの CQ5 インスタンスで複数のドメインをマッピングする方法

質問

CQ5 インスタンスは、異なるコンテンツのブランチで複数の Web サイトをホストします。マルチドメインのホスティングシナリオをサポートするために、ドメインを特定のコンテンツブランチにマップする方法を教えてください。

回答、解決策

Apache Sling [1] に基づく CQ5 は、リポジトリベースの設定を通じて必要な機能を提供します。リソースを解決する場合、これらのいわゆるマッピングが適用されます。
 
次の設定例は、Geometrixx Web サイトに基づいており、デフォルトで CQ5 がインストールされています。Geometrixx の Web サイトは既に多言語化されており、例として完全に使用できます。
 
目標は、これらのマッピングを設定することです。

ドメイン コンテンツのブランチ
www.geometrixx.fr /content/geometrixx/fr
www.geometrixx.de /content/geometrixx/de

これらのノードは、CRX Content Explorer を使用して、リポジトリのデフォルトのワークスペースで作成する必要があります。必要なノードタイプは括弧内に:

/etc
   /map                       (sling:Folder)
      /http                   (sling:OrderedFolder)
         /www_geometrixx_fr   (sling:Mapping)
         /www.geometrixx.fr   (sling:Mapping)
         /www_geometrixx_de   (sling:Mapping)
         /www.geometrixx.de   (sling:Mapping)

2つのマッピングが必要:
  • ルートコンテキストを言語ブランチのインデックスページにマッピング。例、www.geometrixx.fr --> /content/geometrixx/fr.html
  • リソースを対応する言語ブランチにマッピング

以下はこの2つのドメインをマッピングするために必要な設定の JSON 記法です。(/etc/map/http.tidy(/etc/map/http.tidy.-1.json):

{
  "jcr:primaryType": "sling:OrderedFolder",
  "www_geometrixx_fr": {
    "sling:internalRedirect": [
      "/content/geometrixx/fr.html"
    ],
    "jcr:primaryType": "sling:Mapping",
    "sling:match": "www.geometrixx.fr/$"
  },
  "www.geometrixx.fr": {
    "sling:internalRedirect": [
      "/content/geometrixx/fr",
      "/"
    ],
    "jcr:primaryType": "sling:Mapping"
  },
  "www_geometrixx_de": {
    "sling:internalRedirect": [
      "/content/geometrixx/de.html"
    ],
    "jcr:primaryType": "sling:Mapping",
    "sling:match": "www.geometrixx.de/$"
  },
  "www.geometrixx.de": {
    "sling:internalRedirect": [
      "/content/geometrixx/de",
      "/"
    ],
    "jcr:primaryType": "sling:Mapping"
  }
}

また、添付されているのは、上の例の設定を持つコンテンツパッケージ [2] です。

適用

CQ5.2.x、CQ5.3

[1] Apache Sling の柔軟なリソース解像度
[2] geometrixx_domain_mapping.zip
 

ダウンロード

アドビのロゴ

アカウントにログイン