Перенаправление пользователей со старой (несуществующей) страницы на новую страницу - PullRequest
0 голосов
/ 29 июня 2011

Я удалил старую страницу входа ClientLogin.aspx в своем приложении asp.net 4.0 и заменил ее на Login.aspx.Всякий раз, когда пользователь переходит на старую страницу входа, я хочу, чтобы приложение автоматически перенаправляло пользователя на новую страницу входа.Я думал, что есть очень простой способ сделать это в web.config.Я бы предпочел не сохранять старую страницу и вручную перенаправлять пользователя с помощью Response.Redirect.

Ответы [ 3 ]

3 голосов
/ 29 июня 2011

В вашем файле Global.asax.vb добавьте следующий код в событие Application_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");
        }
    }
3 голосов
/ 29 июня 2011

Вы можете сделать это в IIS - см .: http://knowledge.freshpromo.ca/seo-tools/301-redirect.php

2 голосов
/ 29 июня 2011

HttpHandler может быть лучшим решением для вашего случая, потому что вы, возможно, захотите удалить его из своего приложения.Я бы просто использовал приведенный ниже код в качестве отправной точки и изменил бы его в соответствии с вашими потребностями.Также убедитесь, что вы используете код перманентного перенаправления, чтобы, если это общедоступный сайт, Google или другие поисковые системы понимали, что он перемещен.

Как только вы написали свой HttpHandler, просто зарегистрируйте его в своем web.config, и вы будете готовы к работе, просто убедитесь, что путь к обработчику установлен на ваш старый URL."ClientLogin.aspx".

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