使用Apache作为反向代理,由于tomcat需要跳转到登录等鉴权页面,由tomcat返回302响应的跳转,导致跳转到真实的地址或端口号。

解决方法其实很简单:

修改302响应请求的location头即可,在apache有相应的指令。

具体demo如下:

RewriteRule ^/(.*)$ http://%{HTTP_HOST}:99/$1 [P]
## 修改重定向头,防止3XX响应跳转到真实端口
Header edit Location "^http://(.*):99/(.*)$" "http://$1/$2"

 [……]

阅读全文