實現方法:
域名a記錄解析不用說了吧 ',就是做一個*.xrss.cn的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.xrss.cn 這種格式,及數組userhost長度不大于3,否則就跳傳到其它頁
            if (userhost.length > 3)
            {
                httpcontext.current.response.redirect("http://www.xrss.cn/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.xrss.cn跳轉到指定的頁面或鏈接了,但并不是真正的二級域名,只是url轉向而已。
方法二:真正的二級域名
a.        建立站點
此時我們需要建立兩個站點,一個主站點、一個二級域站點,二個站點的文件目錄為同一目錄,其目錄中有default.aspx及index.aspx兩個文件。建立方法如下:
a). 主站點建立方法參照方法一中的站點建立,不過,主機頭非空,需設為www.xrss.cn  與 xrss.cn ,當然,你也可以設置其它不想用來做二級域的主機頭。站點默認訪問文檔為: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.xrss.cn 這種格式,及數組userhost長度不大于3,否則就跳傳到其它頁
            if (userhost.length > 3)
            {
                httpcontext.current.response.redirect("http://www.xrss.cn//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 中的重寫方法是:
                        <!--user區主機頭url重寫,實現當abc.xrss.cn訪問站點時,經二級域站點,默認首文件為index.aspx,將index.aspx地址重寫到/user/index.aspx--> 
代碼: [ 復制到剪貼板 ]
                        <rewriterrule>
                                <lookfor>~/index/.aspx</lookfor>
                                <sendto>~/user/index.aspx</sendto>
                        </rewriterrule>
到這里已經實現二級域了,不管輸入什么樣的主機頭(www.xrss.cn 與 xrss.cn除外,因為這兩個域已經綁定到主站點中,優先訪問到了主站點),就可以實現 abc.xrss.cn訪問到這個用戶目錄了,而且瀏覽器地址欄,出現的也是abc.xrss.cn這樣的域名地址,為了保證此二級域訪問其它頁面也保持二級域名的屬性,也需同時做url重寫,在其它頁面如需用到二級域主機頭(用戶名),從session["userdomainname"] 中取得即可,比如,要在user目錄中的文件 test.aspx ,顯示二級域主機頭名稱,同時需保持瀏覽器地址欄地址為: abc.xrss.cn/test.aspx ,那么在web.config中添加url重寫規則:
代碼:                         <rewriterrule>
                                <lookfor>~/test/.aspx</lookfor>
                                <sendto>~/user/test.aspx</sendto>
                         </rewriterrule>
然后,test.aspx自身通過獲取session["userdomainname"]的值或通過url或取,來顯示二級域主機頭名稱。
當然,你也可以直接將二級域站點單獨綁定到這個user用戶目錄,取得url中的主機頭(用戶名),但這樣可能失去了與主站數據通訊的方便性。 
新聞熱點
疑難解答
圖片精選