現在ASP.NET虛擬主機通常可以綁定多個域名,但透過這幾個域名開啟的頁面都一樣。如何使綁住的這幾個網域分別開啟不通的頁面(即實現子網站的功能)呢? 其實很簡單,只要4個步驟:
1)給虛擬主機綁定幾個網域;例如: www.abc.com ,services.abc.com,support.abc.com。
2)在虛擬主機站點的根目錄下建立幾個資料夾;例如:services,support;www資料夾就不要建了。
3)在vs 2005 Web專案下,建立同樣的幾個資料夾,每個資料夾下方新增一個default.aspx檔案;例如:services,support。
4) 在Global.asax 中加入Application_BeginRequest 事件:protected void Application_BeginRequest(object sender, EventArgs e)
{
string sumDomain;
string domain = Request.Url.Host;
// http://localhost可沒有「.」啊
int i = domain.IndexOf('.');
if (i > 0)
{
// 取網域(例如,www.abc.com)第一個「.」之前的部分(不包括第一個「.」)
sumDomain = domain.Substring(0, i);
// 如果不是“www”,則自動轉向到http://www.abc.com/xxx ,
// 網址列的URL,不會顯示http://www.abc.com/xxx ,而是顯示http://xxx.abc.com
if (sumDomain.IndexOf("www") == -1)
{
// 注意,這句話是關鍵
HttpContext.Current.RewritePath("~/" + sumDomain + Request.Url.PathAndQuery);
}
}
}
怎麼樣,很簡單! 哈哈,這就是URL重寫(HttpContext.Current.RewritePath)。
本文網址: http://www.cnblogs.com/anjou/archive/2006/12/23/601777.html