Jump to content

HTTP 301

(Перенаправлено с 301 редиректа )

В Всемирной паутине HTTP 301 — это код состояния HTTP-ответа для 301 Moved Permanently . Он используется для постоянного перенаправления, что означает, что ссылки или записи, возвращающие этот ответ, должны быть обновлены. Новый URL-адрес должен быть указан в поле «Местоположение», включенном в ответ. Перенаправление 301 считается лучшей практикой для перехода пользователей с HTTP на HTTPS .

РФК 2616 [ 1 ] заявляет, что:

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

Запрос клиента:

GET /index.php HTTP/1.1
Host: www.example.org

Ответ сервера:

HTTP/1.1 301 Moved Permanently
Location: https://www.example.org/index.asp

Использование файла .htaccess

[ редактировать ]

Чтобы устранить проблемы с несуществующими файлами или каталогами с помощью распределенного файла .htaccess:

Redirect 301 /calendar.html /calendar/
Redirect 301 /not_found.html /

Вот пример использования файла .htaccess для перенаправления незащищенного URL-адреса на безопасный адрес без начального «www»:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [R,L]

Статический HTML

[ редактировать ]

Перенаправление пользовательского каталога с использованием файла index.html:

<meta http-equiv="refresh" content="0; url=/" />
<p><a href="/">Home</a></p>

Использование языков программирования

[ редактировать ]

Вот пример использования Perl CGI.pm :

print redirect("https://example.com/newpage.html");

Вот пример использования перенаправления PHP :

<?php
header("Location: https://example.com/newpage.html", true, 301);
exit;

Вот один из способов перенаправления с помощью Express.js :

app.all("/old/url", (req, res) => {
    res.redirect(301, "/new/url");
});

Кэширующий сервер

[ редактировать ]

Эквивалентно просто для конфигурации nginx :

location /old/url {
    return 301 '/new/url';
}

Поисковые системы

[ редактировать ]

И Bing , и Google рекомендуют использовать перенаправление 301 для изменения URL-адреса страницы, отображаемого в результатах поисковой системы, при условии, что URL-адрес будет постоянно меняться и не будет изменен снова в ближайшее время. [ 2 ] [ 3 ]

Технические детали

[ редактировать ]

Код состояния HTTP 301 имеет несколько технических нюансов, которые следует учитывать разработчикам при реализации и управлении перенаправлениями:

Обработка браузера

[ редактировать ]
  • Поведение кэширования : многие веб-браузеры кэшируют 301 редирект. Это означает, что как только браузер пользователя обнаружит перенаправление 301, последующие запросы к исходному URL-адресу будут автоматически направляться на новый URL-адрес без обращения к серверу.
  • Обновление закладок . Браузеры могут обновлять закладки, чтобы отразить новый URL-адрес после обнаружения перенаправления 301.

Серверная часть

[ редактировать ]
  • Apache : Apache имеет mod_alias и mod_rewrite для обработки 301 перенаправления. Использование обоих часто приводит к непредсказуемому поведению, поскольку модули не соблюдают правила других модулей. [ 4 ]

Сравнение с другими кодами состояния

[ редактировать ]
  • 302 Found : в отличие от 301, код состояния 302 указывает на временное перенаправление. Поисковые системы могут не передать значение SEO в новый URL. [ 5 ]
  • 307 Временное перенаправление : аналогично 302, но гарантирует, что метод и тело не будут изменены при выполнении перенаправленного запроса.
  • 303 См. «Другое» : используется, когда результатом POST или другого неидемпотентного метода запроса является ресурс, который следует получить с помощью GET.

Заголовок местоположения

[ редактировать ]
  • Обязательное включение : новый URL-адрес всегда должен указываться в поле «Местоположение» при отправке перенаправления 301. Отсутствие заголовка Location запутает браузеры и может привести к неожиданному поведению.
  • Использование абсолютных URL-адресов . Хотя некоторые браузеры могут принимать относительные URL-адреса, использование абсолютных URL-адресов в заголовке Location является стандартом и обеспечивает единообразное поведение всех пользовательских агентов.

Влияние на SEO

[ редактировать ]
  • Передача ссылочного капитала . Поисковые системы обычно передают большую часть ссылочного капитала (или «сока ссылок») с исходного URL-адреса на целевой URL-адрес для 301 редиректа. [ 6 ]
  • Задержки индексирования . Поисковые системы могут распознать перенаправление и соответствующим образом обновить свои индексы с задержкой.

Распространенные ловушки

[ редактировать ]
  • Множественные перенаправления . Использование нескольких последовательных перенаправлений 301 (от A к B, затем от B к C) может привести к увеличению времени загрузки страницы и снизить ценность SEO.
  • Проблемы со смешанным контентом . При перенаправлении с HTTP на HTTPS убедитесь, что все ресурсы (изображения, сценарии, таблицы стилей) на странице также загружаются через HTTPS, чтобы предотвратить появление предупреждений о смешанном контенте.

См. также

[ редактировать ]
  1. ^ Филдинг; и др. (июнь 1999 г.). 10.3.2 301 Переехал навсегда . IETF. п. 61. сек. 10.3.2. дои : 10.17487/RFC2616 . РФК 2616 .
  2. ^ «Инструмент перемещения сайта» . Справка и инструкции по Bing для веб-мастеров .
  3. ^ «301 редирект» . Справка Инструментов Google для веб-мастеров .
  4. ^ 301 перенаправление для Apache .htaccess: mod_rewrite
  5. ^ Коды статуса SEO и HTTP: комплексный анализ.
  6. ^ Объяснение 301 редиректа: как они влияют на SEO
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4536882adb90e310d45b47045036b236__1714807560
URL1:https://arc.ask3.ru/arc/aa/45/36/4536882adb90e310d45b47045036b236.html
Заголовок, (Title) документа по адресу, URL1:
HTTP 301 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)