如何让我的客户将自己的域重定向到我的服务器并识别它们?

时间:2012-07-18 12:52:46

标签: c# asp.net-mvc dns iis-7.5 nameservers

我有一个问题,我找不到答案,因为我不知道如何用英语搜索它:)

如何让我的客户将自己的域重定向到我的服务器并识别它们?像Wordpress一样。

例如,我创建了一个简单的CMS系统,客户可以注册并拥有自己的页面,如john.mysite.com。但如果他们想要使用他们的域名,我是否必须在Plesk上创建所有这些域名?顺便说一下,我正在使用IIS 7.5和Plesk。

我也不想使用iframe。

实施例

  

john.mywebsite.com/categories-150.html - >   www.johnswebsite.com/categories-150.html

但它应该使用相同的代码。我不必复制所有源代码并为此创建单独的域。

当然,我可以让他们将ns更改为我的服务器并指定A记录但是如何通过代码识别它? (C#ASP.NET MVC)我假设我可以在数据库上搜索域名并获取ID但是如何传递域名?

我希望你能理解:)

谢谢和问候

2 个答案:

答案 0 :(得分:1)

你的问题不是我要清楚的,而是ima试图帮助你

首先,您需要更改DNS设置并指向您的IP

然后在iis中创建一个站点并将该域添加为主机头

并获取请求的网址,您可以使用

Request.Url or look in the Request.ServerVariables["SERVER_NAME"]

有关服务器变量的更多信息 http://msdn.microsoft.com/en-us/library/ms524602(v=vs.90).aspx

答案 1 :(得分:0)

正如我所看到的,它是一些字符串操作并使用字典来获得你想要的东西。

E.g:

// preparation of the dictionary to map your sub domain to the clients website
IDictionary<String, String> clientRedirect = new Dictionary<String, String>();
clientRedirect.Add("john", "www.johnswebsite.com");

...

// actual processing incoming request
String strToRedirect = @"john.mywebsite.com/categories-150.html";
String relPath = strToRedirect.Substring(strToRedirect.IndexOf(@"/")); // = "/categories-150.html"
String subdomain = strToRedirect.Substring(0, strToRedirect.IndexOf(@"/"));
subdomain = subdomain.Replace(@".mywebsite.com", ""); // = "john"

String newUrl = clientRedirect[subdomain] + relPath; // = "www.johnswebsite.com/categories-150.html"

WebRequest request = WebRequest.Create(newURL); // use the URL

或者你的意思是什么不同?