我有两个域:www.Domain1.com和www.Domain2.com指向同一主机(域名服务器)。
我最终将淘汰www.domain1.com,但现在需要它。我在www.domain2.com上设置了SSL。
如果用户请求http://www.domain1/About我想将它们路由到。
换句话说,我希望第一个域的每个请求都转到第二个域,因为我之后逐步淘汰#1而且我只在#2上使用SSL。
不知道如何解决这个问题。
答案 0 :(得分:1)
使用HTTP重定向。
以下是IIS 7的说明: https://technet.microsoft.com/en-us/library/cc732969(v=ws.10).aspx
如果你需要保留查询字符串,它有点违反直觉。而不是使用相对目的地,使用确切的目的地,然后添加$ V $ Q。
因此,使用您的示例,您可以配置从www.domain1.com提供请求的网站,将HTTP重定向设置为https://www.domain2.com $ V $ Q的确切目标
以这种方式进行设置的示例:https://msftplayground.com/2011/01/http-redirect-with-query-string-in-iis-7/
答案 1 :(得分:0)
关于我最终如何做到这一点的最新消息。
1)我用我的主机设置域指针。 Domain1.com指向Domain2.com(两者都指向同一主机位置)
2)由于我在Domain2.Com上设置了SSL,我在Global.asx.cs中设置了一个Aplplication_BeginRequest来调整从Domain1.com到Domain2.com的URL。它也强制使用SSL。这会立即路由到Domain2.com并让SSL保持高兴。
请参阅下面的代码:
protected void Application_BeginRequest(object sender, EventArgs e)
{
string currentUrl = HttpContext.Current.Request.Url.ToString().ToLower();
if (currentUrl.StartsWith("http://domain1.net"))
{
string newUrl = Request.Url.AbsoluteUri.Replace("http://domain1.net", "https://domain2.net");
Response.Redirect(newUrl);
}
else if (currentUrl.StartsWith("https://domain1.net"))
{
string newUrl = Request.Url.AbsoluteUri.Replace("https://domain1.net", "https://domain2.net");
Response.Redirect(newUrl);
} else if (currentUrl.StartsWith("http://www.domain1.net"))
{
string newUrl = Request.Url.AbsoluteUri.Replace("http://www.domain1.net", "https://domain2.net");
Response.Redirect(newUrl);
}
else if (currentUrl.StartsWith("https://www.domain1.net"))
{
string newUrl = Request.Url.AbsoluteUri.Replace("https://www.domain1.net", "https://domain2.net");
Response.Redirect(newUrl);
}
}
帮助我解决此问题的其他帖子: