站点上所有解析为实际节点的无扩展名 URL 都被重定向(使用 301 代码)到它们的版本,并添加了尾部斜杠。它将对前端 Web 服务器的请求量加倍,因此我们希望解决此问题。
我们确实使用 Apache mod_rewrite 将所有传入的 URL(带或不带斜杠)重写为它们的 .html 等效项,以使调度程序缓存一致,但实际处理有点奇怪。
一般来说,我们分三种情况:
为了排除源自 Apache 的重定向,我们禁用了几乎所有模块,例如 mod_dir、mod_negotiation、mod_autoindex 等,以避免由于内容协商或目录索引而导致的重定向,但请求仍在被重定向。
我们的应用程序不包含任何基于 URL 的重定向,所以我想知道是否有任何 OSGI 服务或隐藏的配置设置会触发此类重定向?
我们在站点上还有一组快捷方式,Apache 将它们重写为实际的 URL,并且它们不会被重定向。例如,如果请求 URL 是 /aboutus,它会成功映射到 /content/xxx/yyy/operations/aboutus.html 并在一个循环中处理,无需任何额外的重定向。上述问题仅在 JCR 中存在实际对应节点且请求无扩展性时才有效。