как перенаправить 404 (плохие URL) на домашнюю страницу - PullRequest
3 голосов
/ 22 февраля 2011

Я использую asp.net, и когда я вручную набираю неверный URL (в браузере), он дает мне:

Ресурс не найден. Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), возможно, был удален, изменилось его имя или временно недоступен. Пожалуйста, просмотрите следующий URL и убедитесь, что он написан правильно.

Я хочу, чтобы неверный URL, который не существует, был перенаправлен на домашнюю страницу.

Как мне это сделать? Я использую карту сайта.

Ответы [ 4 ]

6 голосов
/ 22 февраля 2011

Если вы не собираетесь сообщать пользователям об этом, они перенаправляются.Затем вы можете просто включить пользовательские ошибки и сделать что-то вроде этого:

<configuration>
  <system.web>
    <customErrors defaultRedirect="default.aspx" mode="On">
      <error statusCode="404" redirect="default.aspx"/>
    </customErrors>
  </system.web>
</configuration>
1 голос
/ 23 февраля 2011

Если можете, попробуйте перенаправить свои 404 страницы на один и тот же URL-адрес.

Поэтому вместо ответа 404 сделайте 301 ответ на аналогичный URL-адрес на своем сайте.Лучший SEO мудрый

1 голос
/ 22 февраля 2011

Как уже ответили другие, web.config - это один из способов.

Другой вариант - перехватывать необработанные исключения из вашего приложения. Это дает вам больше контроля над перенаправлением.

protected void Application_Error(object sender, EventArgs e)
{
    HttpException httpException = Server.GetLastError() as HttpException;
    if (httpException.GetHttpCode() == 404)
       Response.Redirect("/MainPage.aspx");
}

Помните, что если вы создаете свою собственную страницу 404, вы должны:

  • Добавить 404-код в ответ вручную.
  • Оставьте тело ответа выше 512 байт, иначе браузер покажет сообщение об ошибке по умолчанию.
1 голос
/ 22 февраля 2011

Добавьте этот раздел к вашему web.config:

<customErrors mode="On" defaultRedirect="{yourDefaultErrorPage}">
    <error statusCode="404" redirect="{yourhomePage}"/>
</customErrors>

Элемент customErrors на MSDN .

...