Struts2 的Redirect-action使用绝对URL在反向代理后的的问题

atlasun 2008-08-26 11:41:44
目前遇到这样一个问题
网站放在内网,IP地址为192.168.0.22,通过APACHE反向代理对外发布。
其他内容都正常,但是凡是结果类型为redirect-action的步骤,在浏览器IP地址中都显示出内网IP192.168.0.22,结果无法显示。
查看STRUTS 2源代码,发现redirect-action类型中的转向使用的是绝对URL,即获取当前网站的URL,也就是内网URL,这是问题的根本原因。

使用APACHE的URL重写机制或许可能解决,但是过于复杂。另外觉得REDIRECT-ACTION的这种绝对URL方式或许是不妥的。
请教诸位大侠
1.有无遇到此类问题
2.如何解决?
...全文
221 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
atlasun 2008-08-27
  • 打赏
  • 举报
回复
目前来看,确实是不妥。
现在项目中,凡是使用拼装方式形成完整绝对URL的部分,都改成相对链接,之后顺利通过。
redirect-action就是采用的这种绝对URL的方式。
在google上查,发现在https协议上也存在同样的问题。
所以应该是S2的机制没考虑到在反向代理后的问题。
ztroma 2008-08-26
  • 打赏
  • 举报
回复
不妥,也许仅仅是你这个项目遇到了困难,不能说是S2的处理不妥。你可以改造一下S2中的redirect-action类的代码。让它符合你的需求!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧