Существует только два типа перенаправления: постоянное и временное. Постоянное перенаправление имеет HTTP-код 301, в то время как временное перенаправление имеет HTTP-код 302.
Постоянный редирект (301)
Как видно из названия, постоянное перенаправление означает, что старый URL больше не будет использоваться никогда. Посетители будут постоянно перенаправляться на новый URL.
301 редирект также сообщает поисковым системам, что страница со старым URL стала постоянной и перенаправлена на новый URL. Поисковые системы передадут все авторитетные ссылки непосредственно со старого URL на новый. 301 редирект обычно используется для страниц сайта, которые были перемещены на новый URL или навсегда удалены. Это сродни тому, как если бы вы переехали в другой дом и сообщили всем свой новый адрес.
Временный редирект (302)
Редирект 302 известен как временный редирект. Это означает, что старый URL был перемещен, и посетители перенаправляются на новый URL, как и в случае с 301.
Разница в том, что 302 сообщает поисковым системам, что страница со старым URL только временно перенаправлена на новый URL. Это сигнализирует поисковым системам, что старый URL вернется и сохранит рейтинг страниц старого URL. Таким образом, редирект 302 обычно используется для страниц сайта, которые через некоторое время вернутся к исходному URL. Подумайте об этом, как если бы вы покинули свой дом, уехав в длительный отпуск, и отправили туда свою почту.
Перенаправления полезны, когда вы отправляете посетителей сайта на другой URL-адрес в зависимости от страницы, на которую они пытаются попасть. Вот несколько популярных причин для их использования:
- Перенаправление посетителей с прекративших работу страниц (которые в противном случае выдавали бы ошибку 404) на наиболее похожую страницу.
- Сохранение работоспособности старых URL после перехода с одной CMS на другую.
- Перенаправление посетителей с короткого и простого, запоминающегося URL на нужную страницу.
- Перенаправление устаревших .html URL или не-www на их www-аналоги.
- Сохраняйте сезонный контент страниц с ограниченными по времени предложениями; то же самое предложение вернется в следующем сезоне.
При использовании Nginx в качестве веб-сервера вы можете создавать перенаправления с помощью директив rewrite
или return
.
Использование директивы RETURN
Мы можем использовать директиву return
в контексте сервера для перенаправления HTTP на HTTPS или с одного доменного имени на другое.
server { listen 80; server_name example.com www.example.com; return 301 https://example.com$request_uri; }
Следующая конфигурация также должна работать, если вы хотите перенаправить URL на другой.
location = /blog/how-to-redirect-in-nginx { return 301 $scheme://blog.example.com/how-to-redirect-in-nginx }
Использование директивы REWRITE
server { listen 80; server_name example.com www.example.com; rewrite ^/(.*)$ https://example.com/$1 redirect; }
Мы можем использовать вышеприведенную конфигурацию для временного перенаправления HTTP на HTTPS. Чтобы изменить его на постоянное перенаправление, просто замените redirect на permanent.
Другой пример – перенаправление URL с помощью rewrite, но на этот раз мы используем контекст местоположения.
location = /how-to-redirect-in-nginx { rewrite ^/how-to-redirect-in-nginx?$ /redirection-in-nginx.html break; }
Использование директивы MAP
Если у вас много перенаправлений, вы можете использовать директиву Nginx MAP. Добавьте следующий код сверху в файл nginx.conf
.
map $request_uri $new_uri { include /etc/nginx/redirect-map.conf; }
Затем создайте файл /etc/nginx/redirect-map.conf
и поместите туда старые и новые URL.
Файл /etc/nginx/redirect-map.conf
должен содержать примерно следующее:
/blog/how-to-redirect-in-nginx /nginx-redirect; /old.html /new.html; /old-file.php /new-file.php;
Обязательно проверьте файл карты, он должен содержать; в конце каждой строки, иначе возникнет ошибка EOL. Также помните, что необходимо перезапускать Nginx каждый раз, когда вы изменяете его конфигурационный файл, чтобы применить изменения.
Комментарии (0)