到域指向同一主机...将域1请求更改为域2

时间:2016-03-18 03:14:54

标签: asp.net-mvc

我有两个域:www.Domain1.com和www.Domain2.com指向同一主机(域名服务器)。

我最终将淘汰www.domain1.com,但现在需要它。我在www.domain2.com上设置了SSL。

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

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

不知道如何解决这个问题。

2 个答案:

答案 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);
        }

    }

帮助我解决此问题的其他帖子:

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