目前遇到这样一个问题
网站放在内网,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.如何解决?

解决方案 »

  1.   

    不妥,也许仅仅是你这个项目遇到了困难,不能说是S2的处理不妥。你可以改造一下S2中的redirect-action类的代码。让它符合你的需求!
      

  2.   

    目前来看,确实是不妥。
    现在项目中,凡是使用拼装方式形成完整绝对URL的部分,都改成相对链接,之后顺利通过。
    redirect-action就是采用的这种绝对URL的方式。
    在google上查,发现在https协议上也存在同样的问题。
    所以应该是S2的机制没考虑到在反向代理后的问题。