Aem 如何映射URL?

Aem 如何映射URL?,aem,sling,Aem,Sling,我想将domain/content/myProject/home.html等页面映射到domain/home.html/content/myProject/。我有以下代码: String newpath = getResourceResolver().map(page.getPath()); 这不会改变任何事情。新路径是停留在page.getPath() 如何解决此问题?您需要在etc中创建映射。然后,资源解析程序将负责修剪路径 在AEM中创建映射定义 在AEM的标准安装中,您可以找到以下文

我想将
domain/content/myProject/home.html
等页面映射到
domain/home.html
<不需要代码>/content/myProject/。我有以下代码:

 String newpath = getResourceResolver().map(page.getPath());
这不会改变任何事情。新路径是停留在
page.getPath()


如何解决此问题?

您需要在etc中创建映射。然后,资源解析程序将负责修剪路径

在AEM中创建映射定义

在AEM的标准安装中,您可以找到以下文件夹:

/etc/map/http

这是定义HTTP协议映射时使用的结构。可以在/etc/map下为要映射的任何其他协议创建其他文件夹(sling:Folder)。 配置指向/内容的内部重定向

要创建以/content作为任何请求前缀的映射,请执行以下操作:

  • 使用CRXDE导航到/etc/map/http
  • 创建新节点:
  • 类型:映射
  • 此节点类型旨在用于此类映射,但它的使用不是强制性的
  • 名称localhost\u any
  • 单击全部保存
  • 将以下属性添加到此节点:
    姓名:match
    类型字符串
    值localhost.4503/
    名称:internalRedirect
    类型字符串
    价值/内容/
    单击全部保存。
    这将处理以下请求: localhost:4503/geometrixx/en/products.html 仿佛:
    localhost:4503/content/geometricxx/en/products.html 已提出要求。

    有关更多文档,请参阅此处

  • 回答这个问题,因为它仍然没有答案。以下是etc映射的示例:

    诀窍是向sling添加两个条目:internalRedirect as/和/content/example/

    AEM首先尝试使用第一个条目“/”解析资源。因此,像/etc/designs、/content/dam等非页面URL将由第一个条目寻址。如果无法使用第一个条目解析,则使用第二个条目解析页面


    与ApacheRedirect等其他技术相比,这也是adobe推荐的URL缩短方法

    您是否将映射设置为“/etc/map/http”?如Sarath所述,您是否将映射设置为/etc/map/http或OSGi中的资源解析程序工厂的URL映射。如果它只与主页相关,您还可以在页面属性中使用虚荣路径。这将重定向所有内容,包括/etc/designs和/content/dam,这些都将无法解决。