2016-11-20 56 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