/etc/map.publish の下の sling:Mapping ノードで定義されたSling マッピングを選択的に適用したいのですが、希望する動作が得られません。
基本的に、ホスト ヘッダーがリクエストと一致する場合にのみマッピング ルールがトリガーされるようにしたいと考えています。
現在、/etc/map.publish の下の sling:Mapping ノードを使用して、リソース パスを応答の短い URL にマップしています。
その下/etc/map.publish/http/myapp
に、次のノードがあります。
<jcr:root ...>
jcr:primaryType="sling:Mapping"
sling:internalRedirect="/content/company/app/en"
sling:match="app.company.com
</jcr:root>
私が望むのは、ユーザーが要求したときです:
http://app.company.com/content/company/app/en/page.html
応答の URL (マップされている場合) は、次の形式で返されます。
http://app.company.com/page.html
インバウンド URL とアウトバウンド URL がこのように異なる理由は、Apache がさまざまなデバイス タイプの URL を書き換えているためです。
ただし、次のような別のホスト ヘッダーを持つ要求が到着した場合:
http://localhost:4502/content/company/app/en/page.html
そのルールに従って URL をマップしたくありません。現在、それはにマッピングされています
http://app.company.com/page.html
ホスト/ポートを考慮して、マッピングがリソースを厳密に解決しているようです。次に、出力中に URL をマッピングするときに、「最適な一致」が検出されて使用されます。可能であれば、 map() が resolve() のように動作することを望みます。