2016-03-18 95 views
0

我有两个域:www.Domain1.com和www.Domain2.com指向相同的主机(域名服务器)。域指向相同的主机...更改域1请求域2

我最终会淘汰www.domain1.com,但现在需要它。我在www.domain2.com上安装了SSL。

如果用户请求http://www.domain1/About我想将它们路由到。

换句话说,我希望对第一个域的每个请求都转到第二个域,因为我稍后将逐步淘汰#1,并且我只在#2上使用SSL。

不知道如何去做这件事。

+0

一个简单的方法来做到这将是站起来的小型应用程序指向由'domain1',它只是用来重定向到新的域。 – Rob

回答

0

只是我如何最终做到这一点的更新。

1)我用我的主机设置了一个域指针。 Domain1.com指向Domain2.com(都指向相同的主机位置)

2)由于我在Domain2.Com上设置了SSL,因此我在Global.asx.cs中设置了Aplplication_BeginRequest以调整Domain1.com的URL到Domain2.com。它也强制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); 
     } 

    } 

其他职位,帮助我这样的:

How to redirect HTTP to HTTPS in MVC application (IIS7.5)

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/