リソースマッピング

リソースマッピングは、リダイレクト、バニティー URL および AEM 用の仮想ホストを定義するために使用します。

例えば、これらのマッピングを使用すると次のことが可能です。

  • 内部構造がWebサイトの訪問者ーに表示されないように、すべてのリクエストの先頭に/contentを付けます。
  • Webサイトの/content/en/gatewayページへのすべてのリクエストがhttps://gbiv.com/にリダイレクトされるように、リダイレクトを定義します。

1つのHTTPマッピングでは、すべてのリクエストをlocalhost:4503の先頭に/contentを付けます。 このようなマッピングを使用すると、Web サイトの訪問者に対して内部構造を非表示にすることができます。例えば、次のページにアクセスできます。

localhost:4503/content/we-retail/en/products.html

マッピング前のページは次のとおりです。

localhost:4503/we-retail/en/products.html

を使用すると、マッピングは自動的にプレフィックス/content/we-retail/en/products.htmlに追加します。

注意

バニティー URL は regex パターンをサポートしません。

メモ

詳しくは、Sling のドキュメントと「Mappings for Resource Resolution」と「Resources」を参照してください。

マッピング定義の確認

マッピングでは 2 つのリストが作成されます。JCR Resource Resolver は、これらのリストを(トップダウン)評価して一致項目を探します。

これらのリストは、Felixコンソールの​JCR ResourceResolver​オプションの下で(設定情報と共に)表示できます。例:https://<*host*>:<*port*>/system/console/jcrresolver:

  • Configuration
    Apache Sling Resource Resolver 用に定義された)現在の設定を表示します。

  • Configuration Test
    URL またはリソースパスを入力できます。「Resolve」または「Map」をクリックして、システムによるエントリの変換方法を確認します。

  • Resolver Map Entries
    URL をリソースにマップするために ResourceResolver.resolve メソッドが使用するエントリのリストです。

  • Mapping Map Entries
    リソースパスを URL にマップするために ResourceResolver.map メソッドが使用するエントリのリストです。

2 つのリストには、アプリケーションでデフォルトとして定義されたエントリを含む様々なエントリが表示されます。これらのエントリの目的は、多くの場合、ユーザーのために URL を簡略化することです。

リストでは、パターン(要求に適合する正規表現)と​リプレースメント(適用するリダイレクトを定義します)がペアになっています。

例えば、次のパターンがあるとします。

パターン ^[^/]+/[^/]+/welcome$

このパターンは次のリプレースメントを呼び出します。

代替機能 /libs/cq/core/content/welcome.html.

これにより、次の要求がリダイレクトされます。

https://localhost:4503/welcome "

リダイレクト先は次のとおりです。

https://localhost:4503/libs/cq/core/content/welcome.html

新しいマッピング定義がリポジトリ内に作成されます。

メモ

正規式の定義方法を説明するリソースが多数あります。例:https://www.regular-expressions.info/

AEM でのマッピング定義の作成

AEM の標準インストールには、次のフォルダーがあります。

/etc/map/http

これは、HTTP プロトコル用のマッピングを定義する場合に使用する構造です。/etc/mapの下に、マッピングする他のプロトコル用の他のフォルダー(sling:Folder)を作成できます。

/content への内部リダイレクトの設定

リクエストをhttps://localhost:4503/に接頭するマッピングを作成するには、次のように/contentを付けます。

  1. CRXDEを使用して/etc/map/httpに移動します。

  2. 新しいノードを作成します。

    • タイプsling:Mapping
      これは目的のマッピング用のノードタイプですが、必須ではありません。

    • 名前 localhost_any

  3. すべて保存」をクリックします。

  4. このノードに次のプロパティを​追加​します。

    • 名前 sling:match

      • String

      • localhost.4503/

    • 名前 sling:internalRedirect

      • String

      • /content/

  5. すべて保存」をクリックします。

これは、次のようなリクエストを処理します。
localhost:4503/geometrixx/en/products.html
次のように:
localhost:4503/content/geometrixx/en/products.html
が要求された。

メモ

使用可能な sling のプロパティとその設定方法について詳しくは、Sling のドキュメントの「Resources」を参照してください。

メモ

/etc/map.publishを使用して、発行環境の設定を保持できます。 次に、これらを複製し、パブリッシュ環境のApache Sling Resource Resolverの​Mapping Location​に対して設定した新しい場所(/etc/map.publish)を作成する必要があります。

このページ

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free