/// <summary>
///取得二级域主机头值,并实行转向
/// </summary>
public void CheckDomain()
{ 
HostName = HttpContext.Current.Request.Url.Host.ToString(); //获取URL主机地址
UserHost = HostName.Split(new Char[] { '.' }); //数组,以“.”分隔
//判断二级域名地址是否符合abc.域名.com 这种格式,及数组UserHost长度不大于3,否则就跳传到其它页
if (UserHost.Length > 3)
{
HttpContext.Current.Response.Redirect("http://www.域名.com/Error.aspx"); //跳转到出错页面
return;
} 
UserDomainName = UserHost[0].ToString(); //取得数组最前面一组值,及二级域名主机头 
//进行特定判断,及是不要用到做为二级域名的主机头
if (UserDomainName.ToLower() == "www" UserDomainName.ToLower() == "域名" UserDomainName == null UserDomainName.ToString()=="") 
{
//你的动作
}
else {
HttpContext.Current.Response.Redirect("/User/"); //跳转到用户目录,即是二级域名所要去到的目录,当然你也可以跳传至×.aspx?UserID=xxx这样的链接
return;
} 
}
/// <summary>
///取得二级域主机头值,存入Session["UserDomainName"]中
/// </summary>
public void UserDomainNameSession()
{
HostName = HttpContext.Current.Request.Url.Host.ToString(); //获取URL主机地址
UserHost = HostName.Split(new Char[] { '.' }); //数组,以“.”分隔
//判断二级域名地址是否符合abc.域名.com 这种格式,及数组UserHost长度不大于3,否则就跳传到其它页
if (UserHost.Length > 3)
{
HttpContext.Current.Response.Redirect("http://www.域名.com//Error.aspx"); //跳转到出错页面
return;
} 
UserDomainName = UserHost[0].ToString(); //取得数组最前面一组值,及二级域名主机头 
//进行特定判断,及是不要用到做为二级域名的主机头
if (UserDomainName.ToLower() == "www" UserDomainName.ToLower() == "域名" UserDomainName == null UserDomainName.ToString()=="")
{
//你的动作
}
else
{
HttpContext.Current.Session["UserDomainName"] = UserDomainName; //将二级域名主机头存入Session
}
} 
//你对Session["UserDomainName"]的处理,比如把这个Session["UserDomainName"]的值是“abc”,那么你可以index.aspx?UserName=abc,如果不想使用Session,你可以在需要用到二级域主机头时,再来通过URL地址获取。
<RewriterRule>
<LookFor>~/Index\.aspx</LookFor>
<SendTo>~/User/Index.aspx</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/test\.aspx</LookFor>
<SendTo>~/User/test.aspx</SendTo>
</RewriterRule>