我有一个APIController需要重定向到另一个可能有不同子域的服务。简化代码:
[HttpGet]
public HttpResponseMessage DoSomething() {
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Moved);
string hostname = GetHostname();
response.Headers.Location = new Uri("https://" + hostname + "/new_path" + Request.RequestUri.Query);
return response;
}
重定向应该转到不同的子域或相同的子域,而是不同的端口,具体取决于它运行的暂存环境。如果我在本地运行它,它也可以转到IP。 GetHostname将始终返回正确的主机名,如果我在本地运行它,一切都按预期工作。但是,只要我在Azure上运行它,我就会重定向到一个无法访问的IP地址(例如http://100.1.2.3/new_path
)。有没有办法阻止这种情况并获得原始的未更改的URL?