『尊米网』域名信息交流平台
设为首页 收藏本站
网站地图 RSS-订阅
反馈留言 高级搜索
尊米首页 | 域名新闻 | 域名知识 | 域名人物 | 域名标识 | 相关下载 | 信息专题 | 域名问答 | 域名经纪 | WHOIS查询 | Winindomain.com
 
╣当前位置╠
尊米首页 > 域名知识 > 域名选择/应用 > 文章内容
网站二级域名用.net 2.0实现方案
来源:csdn 发布时间:2007-01-28 21:06:35
欢迎您在线投稿(需先登陆),也可将您的新闻线索/稿件电子邮件至:editor@zunmi.com

本人所了解有两种方案,可能还有其的方式,希望大家多多讨论!
基本思路:
1. 域名支持泛解析,即是指:把A记录 *.域名.com 解析到服务器IP,服务器IIS中做绑定,绑定时主机头为空;
2. 为了实现完全的二级域,建两个站点,一个为主站用,一个为用户用,两个站点目录都指到一个同一网站目录
3. 在Web程序中或取URL来源中的二级域名主机头,比如:abc.域名.com 中的 abc;
4. 用获取来的二级域名名称,存入Session,方便取用
5. 用获取来的二级域名名称,用URL重写地址
实现方法:
域名A记录解析不用说了吧 ^_^,就是做一个*.域名.com的A记录解析到你服务器IP

方法一:二级域名URL转向
a. 建立站点,在IIS中绑定域名(win2003 - IIS6)
打开IIS,右击站点,然后属性,点击网站项IP地址的高级按钮,然后点编辑或添加来新增绑定,主机头值为空.

下面来获取URL地址进行分析,下面是过程代码,用来获取及判断主机头,代码放在默认文档的首文件Index.aspx.cs中

代码:
/// <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;
}

}

到这里已经可以实现abc.域名.com跳转到指定的页面或链接了,但并不是真正的二级域名,只是URL转向而已。

方法二:真正的二级域名
a . 建立站点
此时我们需要建立两个站点,一个主站点、一个二级域站点,二个站点的文件目录为同一目录,其目录中有Default.aspx及Index.aspx两个文件。建立方法如下:
a). 主站点建立方法参照方法一中的站点建立,不过,主机头非空,需设为www.域名.com 与 域名.com ,当然,你也可以设置其它不想用来做二级域的主机头。站点默认访问文档为:Default.aspx。

b). 二级域站点建立方法与方法一中的站点建立一样,其默认访问文档为:Index.aspx。

b.现在我们要用到之前建立的二级域站点,我们将用户的数据放在根目录下的User目录中。
下面是/User目录中默认文档(Index.aspx.cs)的过程代码,主要用途是将二级域名主机头存入Session,方便调用,也是二级域(用户区)的首页文件

代码:
/// <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地址获取。

c. URL重写
我用的是微软的URLRewriter,使用方法参见:http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewriting.......g.mspx?mfr=true
web.config 中的重写方法是:


代码: [ 复制到剪贴板 ]
<RewriterRule>
<LookFor>~/Index.aspx</LookFor>
<SendTo>~/User/Index.aspx</SendTo>
</RewriterRule>

(阅读次数:

上一页12 下一页
上一篇:域名抢注知识   下一篇:两则妙招 让DNS服务器集中解析域名
【免责声明】
以上文章由本站会员发布或网络转载,除色情、暴力及反政府等法律明确禁止内容以外,尊米网对其不承担法律责任。
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]
发表评论
用户名: 新注册) 密码: 匿名评论 (未注册可直接匿名评论)
评论内容:(250字以内)
 §最新评论
进入主题评论页  
热门点击
相关内容
·Win2000功能特性:ActiveDirecto
·提高域名信任度的小办法
·实现跨域名Cookie
·网站域名技巧九要素
·打造企业形象从域名开始
·如何充分发挥域名的商业价值
·个性化还是通用化 谈商业网站的
·多域名的关键词选择应注意什么?
·谈智能域名解析实现南电北网的互
·如何申请域名和保护好域名
·初次建站如何选择域名
·国际域名与国内域名之比较
赞助商广告
尊米首页 - 关于我们 - 本站动态 - 联系我们 - 媒体关注 - 网站地图 - 友情链接 - 原创投稿 - 帮助中心