【摘自网络】每个注册用户都有自已的二级域名

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 以下是以www.devin.cn这个域名为例,让每个注册用户都有自已的二级域名,其中abc.devin.cn就是要用到的二级域名基本思路: 1. 域名支持泛解析,即是指:把A记录 *.devin.cn 解析到服务器IP,服务器IIS中做绑定,绑定时主机头为空; 2.

以下是以www.devin.cn这个域名为例,让每个注册用户都有自已的二级域名,其中abc.devin.cn就是要用到的二级域名基本思路:

1. 域名支持泛解析,即是指:把A记录 *.devin.cn 解析到服务器IP,服务器IIS中做绑定,绑定时主机头为空;

2. 为了实现完全的二级域,建两个站点,一个为主站用,一个为用户用,两个站点目录都指到一个同一网站目录

3. 在Web程序中或取URL来源中的二级域名主机头,比如:abc.devin.cn 中的 abc;

4. 用获取来的二级域名名称,存入Session,方便取用

5. 用获取来的二级域名名称,用URL重写地址

实现方法:

域名A记录解析不用说了吧 ^_^,就是做一个*.devin.cn的A记录解析到你服务器IP

方法一:二级域名URL转向

a. 建立站点,在IIS中绑定域名(win2003 - IIS6)

打开IIS,右击站点,然后属性,点击网站项IP地址的高级按钮,然后点编辑或添加来新增绑定,主机头值为空,如下图所示:

这里只要绑定一个就行了,绑定后如下图所示:

 将此站点默认访问文档设为Index.aspx,。

做好后,不管用什么样的二级前缀都会访问到这个网站。

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

        /// 
        ///取得二级域主机头值,并实行转向
        /// 
        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.devin.cn/Error.aspx"); //跳转到出错页面
           return;
            }
            UserDomainName = UserHost[0].ToString();    //取得数组最前面一组值,及二级域名主机头
            //进行特定判断,及是不要用到做为二级域名的主机头
            if (UserDomainName.ToLower() == "www" || UserDomainName.ToLower() == "devin" || UserDomainName == null || UserDomainName.ToString()=="")
            {  //你的动作

            }
            else {
                HttpContext.Current.Response.Redirect("/User/"); //跳转到用户目录,即是二级域名所要去到的目录,当然你也可以跳传至*.aspx?UserID=xxx这样的链接
             return;
            }
        }

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

方法二:真正的二级域名

a. 建立站点

此时我们需要建立两个站点,一个主站点、一个二级域站点,二个站点的文件目录为同一目录,其目录中有Default.aspx及Index.aspx两个文件。建立方法如下:

a). 主站点建立方法参照方法一中的站点建立,不过,主机头非空,需设为www.devin.cn  与 devin.cn ,当然,你也可以设置其它不想用来做二级域的主机头。站点默认访问文档为:Default.aspx。

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

b. 现在我们要用到之前建立的二级域站点,我们将用户的数据放在根目录下的User目录中。

下面是/User目录中默认文档(Index.aspx.cs)的过程代码,主要用途是将二级域名主机头存入Session,方便调用,也是二级域(用户区)的首页文件

         /// 
        ///取得二级域主机头值,存入Session["UserDomainName"]中
        /// 
        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.devin.cn//Error.aspx"); //跳转到出错页面
                return;
            }
            UserDomainName = UserHost[0].ToString(); //取得数组最前面一组值,及二级域名主机头
   //进行特定判断,及是不要用到做为二级域名的主机头
            if (UserDomainName.ToLower() == "www" || UserDomainName.ToLower() == "devin" || UserDomainName == null || UserDomainName.ToString()=="")
            {
    //你的动作
            }
            else
            {
                HttpContext.Current.Session["UserDomainName"] = UserDomainName; //将二级域名主机头存入Session
            }
        }

//你对Session["UserDomainName"]的处理,比如把这个Session["UserDomainName"]的值是“abc”,那么你可以index.aspx?UserName=abc,如果不想使用Session,你可以在需要用到二级域主机头时,再来通过URL地址获取。

c. URL重写

web.config 中的重写方法是:

   

    ~/Index\.aspx

    ~/User/Index.aspx

   

到这里已经实现二级域了,不管输入什么样的主机头(www.devin.cn 与 devin.cn除外,因为这两个域已经绑定到主站点中,优先访问到了主站点),就可以实现 abc.devin.cn访问到这个用户目录了,而且浏览器地址栏,出现的也是abc.devin.cn这样的域名地址,为了保证此二级域访问其它页面也保持二级域名的属性,也需同时做URL重写,在其它页面如需用到二级域主机头(用户名),从Session["UserDomainName"] 中取得即可,比如,要在User目录中的文件 test.aspx ,显示二级域主机头名称,同时需保持浏览器地址栏地址为: abc.devin.cn/test.aspx ,那么在web.config中添加URL重写规则:

    ~/test\.aspx

    ~/User/test.aspx

   

然后,test.aspx自身通过获取Session["UserDomainName"]的值或通过URL或取,来显示二级域主机头名称。

当然,你也可以直接将二级域站点单独绑定到这个User用户目录,取得URL中的主机头(用户名),但这样可能失去了与主站数据通讯的方便性。

 

另:

ASP.NET MVC 实现二级域名

ASP.NET MVC 使用二级域名来注册Area区域

MVC利用Routing实现多域名绑定一个站点、二级域名以及二级域名注册Area

学习交流群:364976091
相关文章
|
3月前
|
域名解析 弹性计算 安全
阿里云服务器租用、注册域名、备案及域名解析完整流程参考(图文教程)
对于很多初次建站的用户来说,选购云服务器和注册应及备案和域名解析步骤必须了解的,目前轻量云服务器2核2G68元一年,2核4G4M服务器298元一年,域名注册方面,阿里云推出域名1元购买活动,新用户注册com和cn域名2年首年仅需0元,xyz和top等域名首年仅需1元。对于建站的用户来说,购买完云服务器并注册好域名之后,下一步还需要操作备案和域名绑定。本文为大家展示阿里云服务器的购买流程,域名注册、绑定以及备案的完整流程,全文以图文教程形式为大家展示具体细节及注意事项,以供新手用户参考。
|
4月前
|
分布式计算 运维 API
针对MaxCompute经典网络域名下线,Dataphin应对策略的公告
针对MaxCompute经典网络域名下线,Dataphin应对策略的公告
325 7
|
4月前
|
网络协议 安全 文件存储
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问,即使IP地址变化,也能通过DDNS服务保持连接。适用于家庭网络远程访问设备及企业临时或移动设备管理,提供便捷性和灵活性。示例代码展示了如何使用Python实现基本的DDNS更新。尽管存在服务可靠性和安全性挑战,DDNS仍极大提升了网络资源的利用效率。
263 6
|
4月前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
258 3
|
9月前
|
网络协议 小程序 生物认证
Web应用&企业产权&指纹识别&域名资产&网络空间&威胁情报
Web应用&企业产权&指纹识别&域名资产&网络空间&威胁情报
|
5月前
|
域名解析 网络协议
非阿里云注册域名如何在云解析DNS设置解析?
非阿里云注册域名如何在云解析DNS设置解析?
|
5月前
|
域名解析 缓存 网络协议
【网络】DNS,域名解析系统
【网络】DNS,域名解析系统
144 1
|
6月前
|
网络协议 安全
网络中IP地址与域名系统
网络中IP地址与域名系统
123 3
|
7月前
|
网络协议 安全 前端开发
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
|
8月前
|
云计算
公安部备案“网络接入服务商”和“域名商”所属地区管辖选择和填写说明
在阿里云进行公安部备案时,网络接入服务商选“阿里云计算有限公司”,区域为“浙江省杭州市余杭区”,接入方式为“租赁虚拟空间”,。域名注册若也在阿里云(原万网),服务商同样填写阿里云,区域不变
2673 4