如何纠正(Wicket in)Tomcat at/myapp落后于/的Apache代理,该代理将不正确的重定向发送到/myapp/xxx而不是/xxx?

如何纠正(Wicket in)Tomcat at/myapp落后于/的Apache代理,该代理将不正确的重定向发送到/myapp/xxx而不是/xxx?,apache,tomcat,servlets,wicket,Apache,Tomcat,Servlets,Wicket,我已经在Tomcat中的/myapp上部署了我的Wicket应用程序,并使用 ProxyPass / http://localhost:8080/myapp/ ProxyPassReverse / http://localhost:8080/myapp/ 现在Wicket错误地将用户重定向到/myapp/xxx而不是/xxx 有没有办法让Wicket(1.3.5)使用/作为我的根路径(而不是作为servlet部署上下文路径的/myapp) 编辑:以下链接中描述了一个解决方案,但它不适用于1.3

我已经在Tomcat中的/myapp上部署了我的Wicket应用程序,并使用

ProxyPass / http://localhost:8080/myapp/
ProxyPassReverse / http://localhost:8080/myapp/
现在Wicket错误地将用户重定向到/myapp/xxx而不是/xxx

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

编辑:以下链接中描述了一个解决方案,但它不适用于1.3.5版本: 我发现它:

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


在将重定向发送到客户端之前,应该有办法告诉proxy pass或mod jk重写重定向

我自己没有测试过,但是你看过mod_rewrite吗?这里有一些例子描述了你想做什么。

我自己没有测试过,但是你看过mod_rewrite吗?这里有一些例子描述了您想要做什么。

我没有找到直接的答案,但使用了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/

我并没有找到直接的答案,但使用了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/

您可能会发现此Tomcat文档非常有用:


它通过重定向匹配和修改重写解决了上述情况。

您可能会发现这个Tomcat文档很有用:


它通过RedirectMatch和mod_rewrite解决了上述情况。

是的,但我没有弄清楚如何重写重定向,或者如何告诉tomcat如何正确转换相对重定向URL。是的,但我没有弄清楚如何重写重定向,或者如何告诉tomcat如何正确转换相对重定向URL。使用mod_头重写应用程序可能返回的任何HTTP重定向。。。页眉编辑位置^([^/]*/[^/]*)?/(.*)$$1/myapp/$2在该页的下一部分是解决方案:2。使用mod_头重写应用程序可能返回的任何HTTP重定向。。。标题编辑位置^([^/]*/[^/]*)?/(.*)$$1/myapp/$2