Microsoft User Group Винница feedback ASP.NET 4.0: 301 Permanent Redirect (перемещение навсегда) - Alex Krakovetskiy blog - Microsoft User Group Винница

 

ASP.NET 4.0: 301 Permanent Redirect (перемещение навсегда)

302 Redirect (временное перемещение) означает, что страница перемещается на временный адрес.

301 Permanent Redirect (перемещение навсегда) означает, что перенаправление идет на постоянный адрес.

Это важно потому что поисковые системы оценивают временные адреса ниже, чем постоянные. Таким образом, неправильное перемещение может грозить для владельцев сайтов понижением ссылочного веса и, как результат, снижением позиции в поисковой выдаче.

В ASP.NET есть метод Redirect класса Response, который возвращает статус 302:

Response.Redirect("~/MyPage.aspx");

Для того, чтобы переместить страницу навсегда, необходимо использовать следующий код:

protected void Page_PreInit(object sender, EventArgs e)
{
Response.StatusCode = 301;
Response.StatusDescription = "Moved Permanently";
Response.AddHeader("Location", "MyPage.aspx");
}

В ASP.NET 4.0 появился новый метод RedirectPermanent, который можно использовать для постоянного перемещения:

Response.RedirectPermanent("~/MyPage.aspx");

Более подробно можно почитать на странице: http://msdn.microsoft.com/en-us/library/dd384856%28VS.100%29.aspx.

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

Response.RedirectToRoutePermanent(
  new RouteValueDictionary {productId="1", category="widgets"});

Более подробно можно почитать на странице: http://msdn.microsoft.com/en-us/library/dd992972%28VS.100%29.aspx.

Кроме того, в ASP.NET 4.0 исправлена ошибка, связана с использованием Reponse.Redirect(), в результате чего бросалось исключение ThreadAbortException. Решением было использование заглушки вида:

try
{
// Ваш код
Response.Redirect("~/MyPage.aspx");
// Response.End();
}
catch (ThreadAbortException exc)
{
// Ничего не делаем
}
catch (Exception exc)
{
// Обработка ошибок
}

В новой версии необходимости в этой заглушке нет.


Поділитись


Related Posts with Thumbnails Posted мар 10 2010, 05:24 by Краковецкий А. View 934 2

Comments

Denys Kholod on 03-10-2010 13:33

А еще в пару к Response.RedirectToRoute добавили Response.RedirectToRoutePermanent.

Кстати Search Engine Optimization Toolkit от MS очень помогает найти "не правильные" редиректы.

Краковецкий А. on 03-10-2010 15:44

Спасибо, добавил описание метода в статью.

Add a Comment

(required)  
(optional)
(required)  
Remember Me?
Please add 8 and 4 and type the answer here:

Enter captcha:

Информация

О нас
Timeline
Спонсоры
Поддержать

Разделы

Блоги
Медиа
Форумы
Вики
Презентации

Работа

Вакансии
Компании

Проекты

TechPosters
Data Mining SDK
Численные методы на C#
iPhoner
Data Extracting SDK

Контакты

msugvn@gmail.com
krakovetsky.alex
@msugvnua
ВКонтакте
LinkedIn
Facebook
INETA

Разработка логотипа: Helen

Статистика

Powered by Community Server (Non-Commercial Edition), by Telligent Systems