巧用httpModules实现网站域名更换
朋友的網站,原來的域名是 sitea.com,現在要換成siteb.com。當然sitea.com還未到期,要過度一段時間。網上看了這篇文章。
seo網站如何實現301跳轉?http://smt.fortuneage.com/uemarketer/18655-155226.aspx
是這么個意思,如何在asp.net實現。 以前實現過泛域名,用的是URLRewriter,前幾天看NHibernate的一些東西,也有朋友通過httpModules實現每個請求創建一個session連接,請求結束后釋放session。
是啊,微軟就提供了這么一個類似管道鏈的東西,一個一個Modules挨著處理。當然,也可以通過這種方法,判斷只有認證過的用戶才能下載對應擴展名的文件,也就是在交給最終成現之前先截獲進行處理。
當然你可以自己新建一個類,繼承于public class GoXueHttpModule : IHttpModule
?
public class GoXueHttpModule : IHttpModule
??? {
??????? /// <summary>
??????? /// 構造函數
??????? /// </summary>
??????? public GoXueHttpModule()
??????? {
??????? }
??????? #region IHttpModule 成員
??????? /// <summary>
??????? /// 釋放
??????? /// </summary>
??????? public void Dispose()
??????? {
??????? }
??????? /// <summary>
??????? /// 初始化
??????? /// </summary>
??????? /// <param name="context">http應用程序</param>
??????? public void Init(HttpApplication context)
??????? {
??????????? context.BeginRequest += new EventHandler(Context_BeginRequest);
??????????? //關閉頁面的時候
??????????? //context.EndRequest += new EventHandler(Context_EndRequest);
??????? }
??????? #endregion
??????? /// <summary>
??????? /// 開始請求
??????? /// </summary>
??????? /// <param name="sender"></param>
??????? /// <param name="e"></param>
??????? private void Context_BeginRequest(object sender, EventArgs e)
??????? {
??????????? string url = HttpContext.Current.Request.Url.ToString();
??????????? if (url.Contains("sitea.com"))
??????????? {
??????????????? string url2 = url.Replace("sitea.com", "siteb.com");
??????????????? HttpContext.Current.Response.Status = "301 Moved Permanently";
??????????????? HttpContext.Current.Response.AddHeader("Location", url2);
??????????????? HttpContext.Current.Response.End();
??????????? }
??????????? else
??????????? {
??????????????? HttpContext.Current.Response.Redirect(url);
??????????? }
??????? }
??????? /// <summary>
??????? /// 結束請求
??????? /// </summary>
??????? /// <param name="sender"></param>
??????? /// <param name="e"></param>
??????? private void Context_EndRequest(object sender, EventArgs e)
??????? {
????????? }
??? }
?
當然,上面的紅色的,可以直接寫在URLRewriter.ModuleRewriter,這樣既實現了二級域名,又實現了域名的變更。
同時,舊的訪問方式可以不變,通過舊的搜索引擎地址過來的,也會用新的域名的網址來顯示。
轉載于:https://www.cnblogs.com/huang/archive/2010/01/07/1641393.html
總結
以上是生活随笔為你收集整理的巧用httpModules实现网站域名更换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 当img 路径为空时不显示x号
- 下一篇: 编程中弹出的提示框