настроить httpmodule для предотвращения 404 для определенных страниц - PullRequest
0 голосов
/ 14 декабря 2011

В настоящее время я работаю над веб-приложением .net c #. Я удалил несколько .aspx с сайта (удалил их), например, page1.aspx, page2.aspx и т. Д.

Теперь я хочу создать модуль http, который, когда браузер пользователей вызывает page1.aspx или page2.aspx, вместо того, чтобы возвращать код состояния 404, возвращает соответствующий код состояния для удаленной страницы и перенаправляет его. пользователь на домашнюю страницу, а не страницу с ошибкой.

Каков наилучший способ достижения этого, это с помощью модуля http, и если да, я бы настроил это?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2011

Я думаю, что это лучший способ. и это на самом деле очень просто. просто поместите это в свой webconfig.

<customErrors mode="On" defaultRedirect="~/TheDefaultErrorPage.aspx"> 
    <error statusCode="404" redirect="The404ErrorPage.aspx"/> 
</customErrors>

Тогда вы также можете легко добавить больше ошибок, если хотите.

0 голосов
/ 14 декабря 2011

Если есть только несколько страниц, вы можете просто оставить их там с Response.StatusCode = 410 и простым window.location = basepage.

Если это динамический список, который может увеличиваться в размере, я бы поместил его в обработчик ошибок вашего приложения:

protected void Application_Error(Object sender, EventArgs e)
{
    if (/*requesting a deleted resource*/) 
    {
        //return status 410 and a javascript redirect
    }
}
...