使用自定义参数将多个域重定向到同一个azure网站

时间:2015-11-06 06:51:50

标签: asp.net-mvc azure redirect iis azure-web-sites

我有一个场景,我有一个将被多个客户使用的网站。 但我不想将网站发布到每个客户域。相反,我会将网站发布到一个天蓝色的网站,例如 mywebsite.azurewebsites.net ,我希望所有客户域重定向到 mywebsite.azurewebsites.net 但是我需要知道这是哪个客户,所以我可以显示正确的内容。例如,我正在考虑在查询字符串中附加或发送隐藏的自定义参数等。 我需要知道的是

  • 如何将所有域重定向到 mywebsite.azurewebsites.net
  • 如何在重定向中传递隐藏参数,例如来自客户域的任何请求,例如" www.cust1.com/Home/Index "将被重定向到" mywebsite.azurewebsites.net/Home/Index?username=testuser "和" www.cust1.com/Home/Index?querystring=ffff " to" mywebsite.azurewebsites.net?querystring=ffff&username=testuser "
  • 我不想在客户网站上发布任何网站内容,这意味着客户域根目录将为空。

1 个答案:

答案 0 :(得分:3)

有很多不同的方法可以做到这一点。

您需要确定的第一件事是:您将如何处理重定向到mywebsite.azurewebsites.net

  1. 您是否要将代码直接放在客户网站上 重定向?
  2. 您是否可以访问客户DNS,允许您将其网站转发到mywebsite.azurewebsites.net?
  3. 您要创建CNAME记录并将其指向Azure网站吗?
  4. 方法#1

    如果您有权访问客户网站,那么这将成为最简单的方法。

    如上所述,我只需使用某种类型的自定义网址(即mywebsite.azurewebsites.net/customer1)将用户重定向回您的网站。

    当用户点击此页面时,您可以在浏览器中设置一个cookie,以便您知道它们来自何处,然后将它们重定向到mywebsite.azurewebsites.net的主页。这几乎会立即发生,客户永远不会注意到。

    方法#2

    如果您能够转发域名,或者他们只能将用户重定向到mywebsite.azurewebsites.net的主网站,那么您可以在请求进入时简单地查找引用URL。然后如上所述,基于在引用网址上,您可以设置Cookie并显示正确的内容。

    方法#3

    这假设您可以访问客户的DNS记录,并且能够为www.customerwebsite.com创建CNAME记录 - > mywebsite.azurewesbites.net

    在这种情况下,当用户访问该网站时,您只需下拉主机,然后根据该内容设置您的内容。

    具体代码如下:

    string url = HttpContext.Current.Request.Url.AbsoluteUri;
    // http://localhost:1302/TESTERS/Default6.aspx
    
    string path = HttpContext.Current.Request.Url.AbsolutePath;
    // /TESTERS/Default6.aspx
    
    string host = HttpContext.Current.Request.Url.Host;
    // localhost
    

    您可以在此处找到更多信息:How to get the URL of the current page in C#

    如果您有任何疑问或最终实施任何此类解决方案,请与我们联系。