Asp.net 将用户从旧(不存在)页面重定向到新页面

Asp.net 将用户从旧(不存在)页面重定向到新页面,asp.net,redirect,url-rewriting,Asp.net,Redirect,Url Rewriting,我已删除asp.net 4.0应用程序中的旧登录页ClientLogin.aspx,并将其替换为login.aspx。每当用户点击旧的登录页面时,我希望应用程序自动将用户重定向到新的登录页面。我认为在web.config中有一种非常简单的方法可以做到这一点。我希望不必保留旧页面并手动使用Response.redirect重定向用户。您可以在IIS中执行此操作-请参阅:在您的Global.asax.vb文件中,在应用程序\u BeginRequest事件下添加以下代码: Sub Appli

我已删除asp.net 4.0应用程序中的旧登录页ClientLogin.aspx,并将其替换为login.aspx。每当用户点击旧的登录页面时,我希望应用程序自动将用户重定向到新的登录页面。我认为在web.config中有一种非常简单的方法可以做到这一点。我希望不必保留旧页面并手动使用Response.redirect重定向用户。

您可以在IIS中执行此操作-请参阅:

在您的Global.asax.vb文件中,在应用程序\u BeginRequest事件下添加以下代码:

    Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
    ' Fires at the beginning of each request
    If Request.Url.AbsoluteUri.ToUpper.Contains("CLIENTLOGIN.ASPX") = True Then
        Response.Redirect("Login.aspx")
    End If
End Sub
或者,如果您愿意,可以使用C#:

        protected void Application_BeginRequest(object sender, EventArgs e)
    {
        if (Request.Url.AbsoluteUri.ToUpper().Contains("CLIENTLOGIN.ASPX") == true)
        {
            Response.Redirect("Login.aspx");
        }
    }

在您的情况下,HttpHandler可能是最好的选择,因为您可能最终希望将其从应用程序中删除。我将使用下面的代码作为起点,并对其进行修改以满足您的需要。还要确保使用永久重定向代码,这样,如果这是一个面向公众的网站,谷歌或其他搜索引擎就会意识到它已经移动了

   ///
   /// Summary description for Redirect.
   ///
   public class Redirect : IHttpHandler
   {
         public Redirect() {}

         #region IHttpHandler Members

         public void ProcessRequest(HttpContext context)
         {                  
               context.Response.Redirect("Login.aspx");
         }

         public bool IsReusable
         {
               get
               {
                     return true;
               }
         }

         #endregion
   }
受以下代码的启发:

编写好HttpHandler后,只需在web.config中注册它,就可以开始了,只需确保将处理程序的路径设置为旧url即可。“ClientLogin.aspx”


<httpHandlers>
     <add verb="*" path="/ClientLogin.aspx" type="My.Web.Redirect, My.Web" />
</httpHandlers>