因此我使用 ProxyPass 指令重定向到内部托管的 API:
ProxyPass /api/ http://internal.api.server/
ProxyPassReverse /api/ http://internal.api.server/
一切运行正常。不幸的是,客户端有一个错误,无法正确处理 301/302 重定向。API 以正确的 RESTful 风格返回某些操作的重定向,例如指示在哪里可以查看您刚刚使用 POST 创建的新内容。
无论如何,有没有办法配置 apache 从 302 目标位置获取内容并将其返回给原始请求?
即目前:
- 浏览器请求 /api/will-redirect.json
- apache 将其代理到内部 api
- api 响应 302:/api/final-location.json
- apache 反向代理到客户端
- 客户端因无法处理 302 而死机
我想要的是:
- 浏览器请求 /api/will-redirect.json
- apache 将其代理到内部 api
- api 响应 302:/api/final-location.json
- apache 获取 /api/final-location.json
- apache 将 /api/final-location.json 的内容返回给客户端(作为 200 )
有效地使 302 对客户端不可见。可能吗?