程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> [轉]網站二級域名用.net 2.0實現方案

[轉]網站二級域名用.net 2.0實現方案

編輯:.NET實例教程

本人所了解有兩種方案,可能還有其的方式,希望大家多多討論!
基本思路:
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[] { ''.'' }); //數組,以“.”分隔

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved