.net iis 域名泛解析实战

最近做个人网站想实现多个二级域名,一来为了好记,二来为了搜索引擎优化,搜索引擎对二级域名的收录还是比较快的。刚开始做了4,5个二级域名,每个都是在域名解析后台手动添加的,不过随着二级域名越来越多,发现这种方式太麻烦太累了,所以才想通过程序来实现多个二级域名的解析。

实现二级域名泛解析,首先要在域名管理后台添加一个泛解析 添加一条A记录 主机记录写成 *即可 如下图,

.net iis 域名泛解析实战

其次我们需要在iis上建立一个网站比如叫fanjiexi 主机头要留空 把默认页面设置为我们下面要用的页面fanjiexi.aspx,如下图

.net iis 域名泛解析实战

.net iis 域名泛解析实战

至此我们的配置工作准备好了,下面就可以写程序来实现无限二级域名了。

比如我的网站上51tools.info主要是各种在线工具,每个工具我都建立一个二级域名,这样就会很多个二级域名,而且微信爆文wexin.51tools.info里面数采集公众号的文章,每个公众号都是一个二级域名,可想而知有多少个二级域名

.net iis 域名泛解析实战

.net iis 域名泛解析实战

现在我们来看下程序如何实现的

我们在我们项目下建立一个文件叫做fanjiexi.aspx 我们知道上面我们建立的网站已经默认页面已经是这个页面了,而且我们已经设置了泛解析到这个网站,就是任何二级域名都会访问这个页面,这样我们只需要拦截信息输出我们的二级域名想展示的结果即可。

关键代码如下

       var url = Request.Url.Host;
            StringWriter output = new StringWriter();

            if (url.Contains("ip.51tools.info"))
            {
                if (Request.QueryString.Count>0)
                {
                    HttpContext.Current.Server.Execute("/IP.aspx?" + Request.QueryString, output);
                }
                else
                {
                    HttpContext.Current.Server.Execute("/IP.aspx?ip=" + Common.MyRequest.GetIP(), output);
                }
            }
            else if (url.Contains("base64.51tools.info"))
            {
                HttpContext.Current.Server.Execute("/BASE64.aspx", output);
            }
Response.Write(output.ToString());

代码很简单,我们就是获取用户访问的域名,然后去调用我们自己的真实页面输出结果,这样用户看到的就是完整的一个二级域名了。配合数据库查询我们也很容易实现上面说的微信公众号的二级域名。这样我们管理起来很方面,我们只需要维护我们的真实页面。

文章出处:http://www.cnblogs.com/weiguang3100/

在线工具:http://51tools.info

.NET 开发交流 关注微信公众号.net iis 域名泛解析实战

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。