我想有选择地应用在 /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 存在这种差异的原因是因为我有 Apache 为不同的设备类型重写 URL。
但是,当带有不同主机头的请求到达时,例如:
http://localhost:4502/content/company/app/en/page.html
我不希望根据该规则映射 URL。现在,它被映射到
http://app.company.com/page.html
似乎映射使用考虑主机/端口来严格解析资源。然后在输出期间映射 url 时,会找到并使用“最佳匹配”。如果可能的话,我希望 map() 的行为类似于 resolve()。