There are two options:
- Stick a CGI in between (as you described) and use <base href="$FOO"> or replace any relative URLs in the response from the remote server with absolute URLs. Your client-side problem remains: the URL shown will be that of the CGI in between.
- Do the "form fixing" on the client-side and submit directly to the remote server. You now have a client-side scripting problem.
You can in theory redirect a POST request but IIRC most browsers will do a GET on the new resource. Also, were it to work, you'd still be at square one: you'd be submitting the same data you were submitting before, which was not suitable for consumption by the remote CGI (which is where it's now being sent).
— Arien