如何映射网址?

时间:2015-02-11 13:53:16

标签: cq5 aem sling

我想将domain/content/myProject/home.html这样的网页映射到domain/home.html。不需要/content/myProject/。我有以下代码:

 String newpath = getResourceResolver().map(page.getPath());

这不会改变任何事情。 newpath是逗留page.getPath()

如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您需要在其中创建地图。然后资源解析器将负责修剪路径。

在AEM中创建映射定义

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

的/ etc /地图/ HTTP

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

使用/ content:

创建将任何请求添加到<http://localhost:4503/的前缀的映射
  1. 使用CRXDE导航到/ etc / map / http。
  2. 创建一个新节点:
  3. 类型吊索:映射
  4. 此节点类型适用于此类映射,但不一定要使用它。
  5. 名称localhost_any
  6. 点击全部保存。
  7. 将以下属性添加到此节点:      
    名称吊索:匹配
    类型字符串
    值localhost.4503 /
    名称吊索:internalRedirect
    类型字符串
    价值/内容/
    单击全部保存。
    这将处理如下请求:      本地主机:4503 / geometrixx / EN / products.html放在 好像:
        本地主机:4503 /内容/ geometrixx / EN / products.html放在 已被要求。

    您可以在此处参考更多文档http://docs.adobe.com/docs/en/cq/5-6-1/deploying/resource_mapping.html

答案 1 :(得分:0)

回答这个问题仍然没有答案。以下是etc映射应如何显示的示例: enter image description here

Trick是你为吊索添加2个条目:internalRedirect为/和/ content / example /

AEM首先尝试使用第一个条目来解析资源&#39; /&#39;。因此,第一个条目将解决/ etc / designs,/ content / dam等非页面URL。如果无法使用第一个解析,则使用第二个条目来解析页面。

与其他技术(如apache重定向)相比,这也是adobe推荐的URL缩短方式。