我有一个场景,我有一个将被多个客户使用的网站。 但我不想将网站发布到每个客户域。相反,我会将网站发布到一个天蓝色的网站,例如 mywebsite.azurewebsites.net ,我希望所有客户域重定向到 mywebsite.azurewebsites.net 但是我需要知道这是哪个客户,所以我可以显示正确的内容。例如,我正在考虑在查询字符串中附加或发送隐藏的自定义参数等。 我需要知道的是
答案 0 :(得分:3)
有很多不同的方法可以做到这一点。
您需要确定的第一件事是:您将如何处理重定向到mywebsite.azurewebsites.net ?
方法#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#
如果您有任何疑问或最终实施任何此类解决方案,请与我们联系。