301 и 302 редирект http


301 и 302 редирект для посетителя сайта работают одинаково, его перенаправляет на другую страницу или другой URL.

Для веб-сервера и поисковых систем разница есть.

Переадресация определяется сервером при помощи HTTP кода 301 или 302, отдаваемых веб-сервером в ответ на запрос клиента. 302 редирект обычно устанавливается временно, 301 характеризуется как ресурс перемещен навсегда.

301 редирект кэшируется браузером пользователя, а 302 нет. 301 отрабатывает быстрее, что важно для индексации поисковиками.


Для тестирования работы редиректа удобно использовать онлайн сервисы или консольную  утилиту curl.


curl -v example.ru

* Rebuilt URL to: example.ru/
Trying 123.123.123.123…
Connected to example.ru (123.123.123.123) port 80 (#0)
> GET / HTTP/1.1
> Host: example.ru
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Server: nginx/1.6.2
< Date: Thu, 07 Sep 2017 17:09:12 GMT
< Content-Type: text/html; charset=iso-8859-1
< Content-Length: 327
< Connection: keep-alive
< Location: https://example.ru/


curl позволяет избежать кэширования информации браузером. Если проверять работу редиректа через браузер — при редиректе 301 каждый раз раз придется сбрасывать кэш.

В примере выше видно, что на уровне сервера установлен 301 редирект. Он перенаправляет все запросы на версию сайта с https. Для получения подробного вывода добавлен флаг -v (verbose).

Сначала идет запрос по указанному домену, потом сервер возвращает ответ с кодом 301. Идет новый запрос уже по адресу, на который настроена переадресация и о котором сообщил сервер.



Схема по которой видно чем различаются 301 и 302 редирект


301 http:

301 и 302 редирект

302 http:

301 и 302 редирект http

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

Редирект можно настроить в Nginx , в конфигурационном файле Apache или через файл .htaccess в корне сайта.



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

Переадресация с кодом 301 устанавливается если меняется адрес, по которому доступна какая-то страница сайта.

Если весь сайт переносится на другой домен также всегда используют постоянный редирект.


Смотрите также пример настройки редиректа в .htaccess

Сказать спасибо