gpt4 book ai didi

apache - 如何更正(Wicket in)Tomcat at/myapp behinds Apache proxy at/that send incorrect redirect to/myapp/xxx instead of/xxx?

转载 作者:行者123 更新时间:2023-11-28 22:23:22 27 4
gpt4 key购买 nike

我已经在 Tomcat 的/myapp 部署了我的 Wicket 应用程序,并且我已经使用它把它放在 Apache Web 服务器后面

ProxyPass / http://localhost:8080/myapp/
ProxyPassReverse / http://localhost:8080/myapp/

现在 Wicket 错误地将用户重定向到/myapp/xxx 而不是/xxx。

有没有办法让 Wicket(1.3.5) 使用/作为我的根路径(而不是/myapp,这是 servlet 部署上下文路径)?!

编辑:在以下链接中描述了一个解决方案,但它不适用于 1.3.5 版本:我找到了:https://cwiki.apache.org/WICKET/wicket-behind-a-front-end-proxy.html

编辑:问题在于 wicket 使用 ServletResponse#sendRedirect 的相对路径重定向,而 Tomcat 将它们转换为开头包含/myapp 的绝对重定向。我试过 mod_jk(AJP) 但没有区别!

应该有某种方式告诉 proxy-pass 或 mod-jk 在将它们发送给客户端之前重写重定向!

最佳答案

我没有找到直接答案,但使用了 mod jk 的以下变通方法,我想也可以使用代理传递。

RewriteRule           /myapp/(.*)      /$1 [L,R]
RewriteRule ^(.*) /myapp$1 [PT]
JkMount /myapp/* ajp13_worker

第一行重定向来自以/myapp/* 开头的客户端的请求(这是不正确的 Wicket/Tomcat/Apache 重定向的结果)到/*。

第二行重写所有从/* 到/myapp/* 的请求,第三行将它们发送到 tomcat。

对于代理通行证,第三行应替换为:

ProxyPass             /myapp/          http://localhost:8080/myapp/
ProxyPassReverse /myapp/ http://localhost:8080/myapp/

关于apache - 如何更正(Wicket in)Tomcat at/myapp behinds Apache proxy at/that send incorrect redirect to/myapp/xxx instead of/xxx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4420866/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com