リソースマッピング resource-mapping
リソースマッピングは、AEM のリダイレクト、バニティ URL および仮想ホストを定義するために使用します。
例えば、これらのマッピングを使用すると次のことが可能です。
- すべてのリクエストに
/contentという接頭辞を付けて、web サイトの訪問者に内部構造が表示されないようにする。 - Web サイトの
/content/en/gatewayページへのリクエストがすべてhttps://gbiv.com/にリダイレクトされるように、リダイレクトを定義する。
HTTP マッピングの一例として、localhost:4503 に対するすべてのリクエストに /content という接頭辞を指定します。 このようなマッピングを使用すると、Web サイトの訪問者に対して内部構造を非表示にすることができます。例えば、次のページの場合は、
localhost:4503/content/we-retail/en/products.html
以下を使用してアクセスします。
localhost:4503/we-retail/en/products.html
マッピングによって、/we-retail/en/products.html に /content という接頭辞が自動的に追加されます。
マッピングの定義の表示 viewing-mapping-definitions
このマッピングは 2 つのリストを形成し、JCR リソースリゾルバーは一致を見つけるために(トップダウンで)評価します。
これらのリストは、Felix コンソールの JCR ResourceResolver オプション(例:https://<*host*>:<*port*>/system/console/jcrresolver)で(設定情報と一緒に)確認できます。
-
設定
現在の設定を表示します(Apache Sling Resource Resolverで定義されているように)。 -
設定テスト
これにより、URLまたはリソースパスを入力できます。 「解決」または「マップ」をクリックして、システムによるエントリの変換方法を確認します。 -
マップ エントリの解決
ResourceResolver.resolve メソッドでURLをリソースにマッピングするために使用されるエントリのリスト。 -
マップ エントリのマッピング
ResourceResolver.map メソッドがリソースパスをURLにマッピングするために使用するエントリのリスト。
2 つのリストには、アプリケーションでデフォルトとして定義されたエントリなど、様々なエントリが表示されます。 これらのエントリは、多くの場合、ユーザーの URL を簡素化することを目的としています。
リストでは、パターン(リクエストに適合する正規表現)とリプレースメント(適用するリダイレクトを定義)がペアになっています。
例えば、次のパターン
パターン ^[^/]+/[^/]+/welcome$
以下をトリガーします。
リプレースメント /libs/cq/core/content/welcome.html.
次のリクエストをリダイレクトするには、
https://localhost:4503/welcome ``
次に対して
https://localhost:4503/libs/cq/core/content/welcome.html
新しいマッピング定義がリポジトリ内に作成されます。
AEM でのマッピング定義の作成 creating-mapping-definitions-in-aem
AEM の標準インストールには、次のフォルダーがあります。
/etc/map/http
このフォルダーは、HTTP プロトコル用のマッピングを定義する場合に使用する構造です。 マッピングするその他のプロトコル用に別のフォルダー(sling:Folder)を /etc/map の下に作成できます。
/content への内部リダイレクトの設定 configuring-an-internal-redirect-to-content
https://localhost:4503/に対するリクエストのプレフィックスを/contentとするマッピングを作成するには、次の手順を実行します。
-
CRXDE を使用して
/etc/map/httpに移動します。 -
ノードの作成:
-
タイプ
sling:Mapping
このノードタイプは、そのようなマッピングを目的としていますが、その使用は必須ではありません。 -
名前
localhost_any
-
-
「すべて保存」をクリックします。
-
このノードに次のプロパティを追加します。
-
名前
sling:match-
型
String -
値
localhost.4503/
-
-
名前
sling:internalRedirect-
型
String -
値
/content/
-
-
-
「すべて保存」をクリックします。
このマッピングは、次のようなリクエストを処理します。localhost:4503/geometrixx/en/products.html
例えば:localhost:4503/content/geometrixx/en/products.html
は要求された。
/etc/map.publish を使用して、パブリッシュ環境の設定を保持できます。 これらの設定を複製して、パブリッシュ環境の Apache Sling Resource Resolver の マッピング場所 用に、新しい場所(/etc/map.publish)を設定する必要があります。