AEM 调度程序仅提供来自缓存的重写 URL

AEM dispatcher only serving rewritten URLs from cache

此问题仅供查看。我已经解决了。在下面找到答案。

我们设置了以下重定向规则,这是我们当时唯一的重定向规则:

RewriteRule "/(.*)(.html)$" "/content/my-company/.html" [PT]

如您所见,如果我请求/en.html,上面的规则应该将其重写为/content/my-company/en.html

这是我们 运行 遇到的问题:

如果我按顺序执行以下操作,这就是我在每一步中得到的结果:

  1. 完全手动清除调度程序缓存。
  2. 请求 https://example.com/en.html -> returns 404 并且请求未到达发布服务器(已在 request.log 中验证以进行发布)
  3. 请求 https://example.com/content/my-comany/en.html - 成功 (200)。请求到达发布服务器并且现在缓存在路径 cache-directory/content/my-comany/en.html
  4. 下的调度程序中
  5. 现在,如果我从第 1 步请求 https://example.com/en.html,它 returns 页面正确 (200)。它似乎是从缓存中提供的?

似乎调度程序使用重写的 url,仅当它存在于调度程序缓存中并且 returns 404 否则。

在此处查看调度程序模块的 adobe 文档:https://helpx.adobe.com/experience-manager/dispatcher/using/dispatcher-install.html#ApacheWebServerConfigureApacheWebServerforDispatcher

有一个名为 DispatcherUseProcessedURL 的选项。在我们的配置中,它被设置为 0 但它应该被设置为 1 以便调度程序模块可以使用重写(处理)的 url.

这解决了我们的问题!