在AEM as a Cloud Service创作实例上启用缩短URL的请求转换

在Adobe Experience Manager (AEM) as a Cloud Service中,创作实例上的缩短URL将重定向到默认起始页(/aem/start.html),而不是预期的内容。 此问题影响使用省略/content/websites前缀的URL验证配置文件页面的团队。 出现此问题的原因是,创作实例在默认情况下不应用请求转换。 您可以通过使用AEM配置管道部署自定义CDN配置来解决此问题。

描述 description

环境

产品: Adobe Experience Manager as a Cloud Service (AEMaaCS) — 站点
实例: 通过配置管道部署了CDN配置的AEMaaCS创作实例

问题/症状

  • 访问缩短的URL(如/ui/en/about/people/profiles.user-name+8b1126ad.html)会重定向到AEM起始页。
  • 使用完整路径/content/websites/ui/en/about/people/profiles.user-name+8b1126ad.html可正确显示配置文件页面。
  • 在AEM as a Cloud Service上,创作实例直接从JCR解析URL,不使用传统Dispatcher。

原因

根据设计,AEMaaCS使用Dispatcher重写规则仅在发布层上应用请求转换规则。 创作实例未使用Dispatcher,因此它不会自动转换缩短的URL。 要在创作层上启用此功能,必须通过配置管道部署CDN配置。 转换规则还必须使用正确的语法,包括正确的转义(例如,\"/content/websites\\\\1\")。

解决方法 resolution

要解决此问题,

  1. 使用AEM配置管道部署CDN配置。 此配置应包含一个名为add-content-websites-prefix的自定义规则。 该规则检查请求是否位于创作层以及路径是否以/ui/开头。 如果同时满足两个条件,则通过在前面/content/websites重写路径。

    code language-none
    kind: "CDN"
    version: "1"
    metadata: { envTypes: [ "dev", "stage", "prod"]  }
    data:
      requestTransformations:
        rules:
          - name: add-content-websites-prefix
            when:
              allOf:
                - { reqProperty: tier, equals: author }
                - { reqProperty: path, matches: "/ui/" }
            actions:
              - type: transform
                reqProperty: path
                op: replace
                match: (.*)$
                replacement: "/content/websites\\1"
    
  2. 部署配置后,在创作实例上测试缩短的URL。 现在,他们应该正确解析为预期的内容。

其他注意事项

  • 虽然基于CDN的现成(OOTB)请求转换机制最初将目标定位到发布环境,但您可以通过配置管道部署正确的配置来将其扩展到创作环境。
  • Adobe建议在创作实例上使用完整路径进行日常内容验证。 应始终测试自定义转换规则,以避免中断创作工作流。

相关阅读

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f