AEM 调度程序仅提供来自缓存的重写 URL
AEM dispatcher only serving rewritten URLs from cache
此问题仅供查看。我已经解决了。在下面找到答案。
我们设置了以下重定向规则,这是我们当时唯一的重定向规则:
RewriteRule "/(.*)(.html)$" "/content/my-company/.html" [PT]
如您所见,如果我请求/en.html
,上面的规则应该将其重写为/content/my-company/en.html
。
这是我们 运行 遇到的问题:
如果我按顺序执行以下操作,这就是我在每一步中得到的结果:
- 完全手动清除调度程序缓存。
- 请求
https://example.com/en.html
-> returns 404 并且请求未到达发布服务器(已在 request.log 中验证以进行发布)
- 请求
https://example.com/content/my-comany/en.html
- 成功 (200)。请求到达发布服务器并且现在缓存在路径 cache-directory/content/my-comany/en.html
下的调度程序中
- 现在,如果我从第 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.
这解决了我们的问题!
此问题仅供查看。我已经解决了。在下面找到答案。
我们设置了以下重定向规则,这是我们当时唯一的重定向规则:
RewriteRule "/(.*)(.html)$" "/content/my-company/.html" [PT]
如您所见,如果我请求/en.html
,上面的规则应该将其重写为/content/my-company/en.html
。
这是我们 运行 遇到的问题:
如果我按顺序执行以下操作,这就是我在每一步中得到的结果:
- 完全手动清除调度程序缓存。
- 请求
https://example.com/en.html
-> returns 404 并且请求未到达发布服务器(已在 request.log 中验证以进行发布) - 请求
https://example.com/content/my-comany/en.html
- 成功 (200)。请求到达发布服务器并且现在缓存在路径cache-directory/content/my-comany/en.html
下的调度程序中
- 现在,如果我从第 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.
这解决了我们的问题!