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