We own server A, and on some occasions we rewrite requests to our partner on server B.
In some cases server B will respond with a redirect to a completely different website, which is what is expected, let's say server C. However, when that redirect form server B comes back to server A, server A interprets it as a redirect to a location on iteself (A) and not as a redirect to other website - server C.
How do I take note of the redirect to the external website and actually go there, rather than assuming that redirect is on my server (and 404ing)? We're running IIS 7 with the rewrite module.
Any help much appreciated.
Go to the ARR proxy settings (they're hidden under IIS -> Application Request Routing Cache -> Server Proxy Settings) and uncheck the "Reverse rewrite host in response headers" checkbox. That should be enough.
If you can't change this in the GUI, you can set the config via command line.
Something like this should work:
appcmd.exe set config -section:system.webServer/proxy /reverseRewriteHostInResponseHeaders:"False" -commit:apphost
The "Reverse rewrite host in response headers" checkbox was in a different place for me. I'm using Windows Server 2012 R2.
It was under Connections -> Server Farms -> -> Proxy, just below the time-out settings.
In my case, checking this resolved my issues.