情况:FreeBSD 13 服务器使用 Apache 2.4 作为 SSL 上的反向代理。Bastille jail 使用端口 80 上的 nginx 和 joomla 4.04
问题:在 Joomla 中执行 POST(实际上是除登录之外的任何 POST)时,更新可以正常处理,但随后会重定向回原始完整 URL,且末尾没有斜杠。当然,这无法在 DNS 级别解决,并导致 404。
我尝试用 apache 2.4 替换 nginx,但问题仍然存在。
在 Joomlaconfiguration.php
文件中,我尝试了几个值选项$live_url
(包括尾随反斜杠),但也没有用。(说实话,我没有看到它是否有值有什么区别)。
由于我是 Joomla 新手,我没有找到任何调试方法来查看到底哪里出了问题以及如何修复它。
答案1
事实证明,问题是由前端 Apache 反向代理服务器引起的,在 http 重定向到 https 时,结尾的“/”丢失了。而且由于 joomla 向非 SSL 版本的 URL (HTTP) 给出 303(参见其他),因此 Apache 服务器将其重定向到无效 URL。
现在我必须弄清楚为什么 Joomla 重定向到 HTTP URL 并且不保留相对寻址,因为它位于处理 SSL 部分的反向代理后面。