当前位置 博文首页 > gaoxu529的专栏:asp.net 利用Web.config实现整站301永久重定向

    gaoxu529的专栏:asp.net 利用Web.config实现整站301永久重定向

    作者:[db:作者] 时间:2021-06-19 12:29

    1、在web.config加入配置

      <appSettings>
        <add key="WebDomain" value="mhzg.net"/>
        <add key="URL301Location" value="www.mhzg.net"/>
      </appSettings>

    2、在当前解决方案下新建一个类库项目

    3、新建一个cs,命名为:Domain301.cs

    using System;
    using System.Web;
    using System.Configuration;
    namespace Domain
    {
        public class RedirectNewDomain : IHttpModule
        {
            public void Dispose()
            {
            }
            public void Init(HttpApplication context)
            {
                context.AuthorizeRequest += (new EventHandler(Process301));
            }
            public void Process301(object sender, EventArgs e)
            {
                HttpApplication app = (HttpApplication)sender;
                HttpRequest request = app.Context.Request;
                string lRequestedPath = request.Url.DnsSafeHost.ToString();
                string strDomainURL = ConfigurationManager.AppSettings["WebDomain"].ToString();
                string strWebURL = ConfigurationManager.AppSettings["URL301Location"].ToString();
                if (lRequestedPath.IndexOf(strWebURL) == -1)
                {
                    app.Response.StatusCode = 301;
                    app.Response.AddHeader("Location", lRequestedPath.Replace(lRequestedPath, "http://" + strWebURL + request.RawUrl.ToString().Trim()));
                    app.Response.End();
                }
            }
        }
    }

    4.在web.config里注册

    <httpModules>
          <add name="Redirect301" type="RedirectNewDomain, Domain"  />
    </httpModules>