天天看點

【摘自網絡】每個注冊使用者都有自已的二級域名MVC利用Routing實作多域名綁定一個站點、二級域名以及二級域名注冊Area

以下是以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中

到這裡已經可以實作abc.devin.cn跳轉到指定的頁面或連結了,但并不是真正的二級域名,隻是URL轉向而已。

方法二:真正的二級域名

a. 建立站點

此時我們需要建立兩個站點,一個主站點、一個二級域站點,二個站點的檔案目錄為同一目錄,其目錄中有Default.aspx及Index.aspx兩個檔案。建立方法如下:

b). 二級域站點建立方法與方法一中的站點建立一樣,其預設通路文檔為:Index.aspx。

b. 現在我們要用到之前建立的二級域站點,我們将使用者的資料放在根目錄下的User目錄中。

下面是/User目錄中預設文檔(Index.aspx.cs)的過程代碼,主要用途是将二級域名主機頭存入Session,友善調用,也是二級域(使用者區)的首頁檔案

//你對Session["UserDomainName"]的處理,比如把這個Session["UserDomainName"]的值是“abc”,那麼你可以index.aspx?UserName=abc,如果不想使用Session,你可以在需要用到二級域主機頭時,再來通過URL位址擷取。

c. URL重寫

web.config 中的重寫方法是:

然後,test.aspx自身通過擷取Session["UserDomainName"]的值或通過URL或取,來顯示二級域主機頭名稱。

當然,你也可以直接将二級域站點單獨綁定到這個User使用者目錄,取得URL中的主機頭(使用者名),但這樣可能失去了與主站資料通訊的友善性。

另:

<a href="http://www.cnblogs.com/luanwey/archive/2009/08/12/1544444.html">ASP.NET MVC 實作二級域名</a>

<a href="http://www.cnblogs.com/jobily/archive/2011/10/09/2204800.html">ASP.NET MVC 使用二級域名來注冊Area區域</a>

學習交流群:364976091

繼續閱讀