我的公司希望邮寄明信片,要求收件人访问网站以获取添加信息。明信片上的网址将包含一个独特的子域名,用于跟踪目的。
例如,John Smith的网址看起来像johnsmith.mysite.com。艾米约翰逊的明信片网址将是amyjohnson.mysite.com等。
所以,2个问题。一,可以以这种方式设置网址吗?我们将发送数以千计的独特明信片,因此在我们的网站主机管理部分手动设置子域名是不现实的。还有两个,如何在asp.net中,我可以只捕获子域吗?
由于
答案 0 :(得分:0)
我采取了另一种方法来解决我的问题。我没有尝试完全以编程方式处理这个问题,而是使用我的网络主机(GoDaddy)在我的域上创建了一个“通配符DNS”。它有一些信息at this link.
一旦我的域名设置为允许通配符子域名,我就可以进入我的代码,并使用以下内容,这样我就可以提取子域名:
Uri url = new Uri(System.Web.HttpContext.Current.Request.Url.AbsoluteUri);
string subDomain = GetSubDomain(url);
和...
public string GetSubDomain(Uri url)
{
if (url.HostNameType == UriHostNameType.Dns)
{
var host = url.Host;
if (host.Split('.').Length > 2)
{
var lastIndex = host.LastIndexOf(".");
var index = host.LastIndexOf(".", lastIndex - 1);
return host.Substring(0, index);
}
}
return null;
}