Aem 如何为多个域配置CQ Apache sling资源解析器工厂

Aem 如何为多个域配置CQ Apache sling资源解析器工厂,aem,Aem,我有两个域和内容路径,如下所示 domain1.com/content/abc/en-US/home.html, domain2.com/content/xyz/kr-kr/home.html 我在CQ发布实例->Felix控制台->Apache Sling解析器工厂中定义了以下URL映射配置 /content/abc/:/ /content/xyz/:/ 上述配置将从URL中删除/content/abc、/coent/xyz缩短URL 我已经定义了重写规则,将www.domain1.com重定

我有两个域和内容路径,如下所示 domain1.com/content/abc/en-US/home.html, domain2.com/content/xyz/kr-kr/home.html

我在CQ发布实例->Felix控制台->Apache Sling解析器工厂中定义了以下URL映射配置

/content/abc/:/ /content/xyz/:/

上述配置将从URL中删除/content/abc、/coent/xyz缩短URL 我已经定义了重写规则,将www.domain1.com重定向到domain1.com/en-US/home.html,将www.domain2.com重定向到domain2.com/kr kr/home.html。所有这些都可以正常工作


但我的问题是,我也可以从domain2访问domain2.com/en-US/home.html,尽管我在domain2中没有en-US,我们应该看到404页。我如何限制这一点。我知道这是因为资源解析器映射。任何帮助都将不胜感激!!!如果您不清楚我的问题,请告诉我。

这是一些需要在web服务器级别进行控制的事情。域只接受对CQ服务器的请求。因为两个域都指向同一服务器,只要路径解析到正确的位置,它就会返回页面。Cognifide的博客上有一篇关于这方面的文章。以下是该博客的一段摘录,与你的问题有关

由于用户可以在给定域名后输入完整内容路径,例如geometrixx.com/content/geometrixx/en/products.html,因此他们也可以获得属于其他域的页面,例如geometrixx.com/content/geometrixx/fr/products.html。为了避免这种情况,我们需要检查所有以/content开头的路径请求,并拒绝与任何活动、DAM或当前域无关的请求:

重写cond%{REQUEST_URI}^/content

重写cond%{REQUEST_URI}^/内容/活动

重写cond%{REQUEST_URI}^/内容物/大坝

重写规则^/content/geometricxx/en-[R=404,L,NC]


当请求不在该域上的页面时,它利用ApacheHTTPD重写模块发送404响应。博客帖子的链接是

谢谢你的回复。我能够用上面的重写条件解决这个问题。