Как правильно использовать RedirectPermanent? - PullRequest
3 голосов
/ 05 марта 2012

Я работаю на сайте электронной коммерции, который передает идентификаторы продуктов в строке запроса.Мне просто нужно было решить проблему, когда страница продукта не проверяла статус продукта (в реальном времени или в архиве), поэтому, если бы у пользователя была прямая ссылка, например, результат поиска, продукт все равно отображался бы, даже если бы он имел статус«Архивный».

Моим простым исправлением было Response.Redirect("~/Products/Default.aspx");, если статус не был "Живой".

Должен ли я использовать RedirectPermanent в этой ситуации, даже если возможно, что продукт может вернуться в онлайн?

Ответы [ 2 ]

4 голосов
/ 06 марта 2012

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

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

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

Что касается поисковых систем, вы можете отображать другой контент для архивных продуктов, и вы можете захотеть, чтобы он отображался по-другому в вашем sitemap.xml (с другим приоритетом, или не отображаться вообще), или вы можете исключить его из индексации ( robots.txt или с помощью мета-роботов ).

3 голосов
/ 05 марта 2012

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

Вы также можете пометить документ, чтобы он не индексировался поисковыми машинами.Что-то вроде:

<META NAME="ROBOTS" CONTENT="NOINDEX">
...