2016-11-20 54 views
2

我可以看到URL广泛两种方法重写在AEM:AEM URL重写

  1. 吊带映射:在/ etc /图/ HTTP(S)(吊索映射)
  2. URL使用链路重写重写/的TransformerFactory。

我想知道哪一个是二之间更好 - 在易于实现,可扩展性,维护&自动化的意义。

问候。

+0

任何来自两个其他开以上方法? – Finn

+0

调度员级别的另一个选项 - [mod_rewrite](http://httpd.apache.org/docs/current/mod/mod_rewrite.html)。比较是一个广泛的话题,可能是SO成员可以建议的。 –

+0

只有mod_rewrite,我们可能会破坏AEM /吊索功能 - 两者都是组合。 – Finn

回答

2

这取决于您指的是哪种重写。入站或出站。

当谈到入站重写时,我建议使用mod_rewrite,并用一条规则恰当地重写你的内容 - 这非常有效。

当谈到出站重写(处理html中的链接)时,您应该使用Sling Mappings--因为它们更高效更清晰 - 而且它们只是为此目的而设计的。

看看这个博客这也解释了整个重写旅程:https://www.cognifide.com/our-blogs/cq/multidomain-cq-mappings-and-apache-configuration/

3

总有多种选择,以吊带的一个问题。如果你看的题目是“URL重写”,它有两个维度:

  • 出境 - 例如缩短链接/content/path/en/about.html/en/about/
  • 入站 - 例如从/en/about/入站请求映射到resoure请求/content/path/en/about.html

外向: URL重写通常进行由LinkRewriter /出站的TransformerFactory。 理论上,您也可以更改组件以进行不同的渲染或更改您的内容。但不建议。 要应用可以使用一个变压器

  • 的/ etc /地图映射(推荐)中,被称为映射映像项目[1]
    • 增强映射允许复杂的规则,也可用于regex-基于规则
    • 允许每个域或协议不同的映射
    • 可以确保链接完全外翻
  • ResourceResolver映像项目[1] 仅
  • 不采取域或协议考虑
    • 传统映射,非常简单的规则
    • 要求对变化解析器重新启动(可以为大的生产环境中是昂贵的)
  • 定制的TransformerFactory
    • 了基于萨克斯+定制RUL充满力量改变的道路上所有链接ES

入境: 你的入站请求可以改写或映射吊带或在之前的基础设施水平(Apache的HTTPD的mod_rewrite或CDN股份公司Akamai的)

  • 阿帕奇HTTPD的mod_rewrite推荐在生产) - 之前它被转发给调遣器模块修改所述请求。推荐,因为它允许增强的安全性以及对适当的和简单的缓存和去缓存规则
  • 吊带 - 通常不用于生产,因为缓存可能会变得困难
    • 的/ etc /图
    • ResourceResolver
    • RequestFilter [2]
    • NonExistingResource的servlet
  • CDN:与mod_rewrite相同。请求前的入站操作到达分派器

HTH

[1] https://docs.adobe.com/docs/en/aem/6-2/deploy/configuring/resource-mapping.html

[2] https://sling.apache.org/documentation/the-sling-engine/filters.html

[3] https://sling.apache.org/documentation/the-sling-engine/mappings-for-resource-resolution.html