Какова разница между response.redirect и статусом ответа 301 перенаправляет в asp?

Наше приложение asp переходит на новый сервер, и я хочу реализовать перманентное перенаправление URL. Мне известно о следующих двух подходах: мне нужно понять, какой из них для пользователя по другому и когда?

Вариант 1:

<%@ Language=VBScript %><% Response.Redirect "http://www.example.com" %>

Вариант 2:

<%@ Language=VBScript %><% Response.Status="301 Moved Permanently" 
  Response.AddHeader "Location","http://www.example.com/" %>

Спасибо,

Нихилу.

Ответ 1

Response.Redirect выдает сообщение 302, которое является временным перенаправлением. 301, используя Response.AddHeader, который вы указали, предназначен для постоянных переадресаций.

Различия между 301 и 302 имеют некоторое значение с поисковой оптимизацией. 301 будет содержать все ваши ранжировки поиска из старого места. С другой стороны, если вы НЕ хотите, чтобы ваша новая страница была проиндексирована, вы можете использовать Response.Redirect(302), так как двигатели будут рассматривать временное перенаправление. Google не индексирует 302, потому что многие спамеры используют его, чтобы попытаться увеличить их рейтинг.

Поскольку вы постоянно переходите на новый сервер, лучше всего пойти 301.

Ответ 2

Response.Redirect() (и эквивалентный метод RedirectPermanent() для 301) делает много вещей за кулисами. Он нуль проверяет запрашиваемую строку URL-адреса, кодирует ее, вызывает обработчики событий для события Redirecting, если они есть, и, наконец, вызывает Response.End(), который отбрасывает ответ обратно в браузер и прерывает текущий поток.

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

Кстати, есть больше (и лучше) вариантов для этого. IIS имеет URL-адрес Rewriting module, который позволит вам перенаправить заданный URL-адрес, не назове свою страницу в качестве обработчика запросов, и централизованно управлять URL-адресом для упрощения управления поисковыми системами.

Ответ 3

В обычном перенаправлении по умолчанию будет использоваться HTTP статус 302. Переадресация с статус 301 не будет индексироваться поисковыми роботами (такими как Googlebot), и если бы они были, они будут удалены из существующих индексов. Очень полезно, если вы хотите "обновить" старый URL-адрес для более нового URL-адреса. Поисковик будет индексировать переадресации со статусом 302 в любом случае, так что вы, вероятно, можете столкнуться с загрязнением в результатах поиска. Обычно вы используете статус 302, например, для шаблона PRG и статуса 301 для перенаправления постоянного, как и сейчас.

Ответ 4

Response.Redirect отправляет в браузер браузер статуса "302 - перемещенный временно", что может быть или не быть в порядке, в зависимости от того, что вы делаете. Если вы перенаправляетесь на нужное место для своего контента, вы хотите сделать 301 переадресацию, потому что поисковые системы не будут правильно сканировать на 302.