Как я могу отправить 301 постоянное перенаправление с помощью ASP.NET?

Мне нужно постоянно перенаправлять некоторые страницы, а также перенаправлять пользователя на новый URL-адрес.

Этот код устанавливает только правильные заголовки. Пользователь не перенаправляется.

public static void PermanentRedirect(this HttpResponse response, string newUrl)
{
  response.Status = "301 Moved Permanently";
  response.StatusCode = 301;
  response.AddHeader("Location", newUrl);
}

Если я поставлю:

Response.Redirect(newUrl);

в конце выполняется временное перенаправление 302.

Как я могу 301 перенаправить пользователя?

Похожие вопросы:

Как программно перенаправить 301 на странице asp


person MartinHN    schedule 05.07.2009    source источник
comment
Я только что написал об этом сообщение в блоге: ko-sw .com/Blog/post/Permanent-Redirect-Using-ASPNET.aspx   -  person Kerido    schedule 23.02.2010


Ответы (3)


Попробуйте Response.Flush и Response.End. Редирект предлагает завершить запрос, отправив 302.

person John Saunders    schedule 05.07.2009

Обратите внимание, что в ASP.NET 4.0 это теперь встроено, поэтому вы можете использовать RedirectPermanent(). например

RedirectPermanent("/newpath/foroldcontent.aspx"); 
person Dan Diplo    schedule 21.04.2010

или, может быть, попробовать ISAPI? он имитирует mod_rewrite и другие функции .htaccess в IIS.

person Nona Urbiz    schedule 01.09.2009