Редирект — это процесс перенаправления пользователя с запрашиваемого URL-адреса на другой. Он используется, когда документ был временно или постоянно перемещен на другой URL-адрес. Редирект может быть эффективным инструментом улучшения юзабилити и SEO.
Для чего нужен 301-й редирект
301-й редирект (Moved Permanently) — это постоянный редирект. Используется для перемещения страницы на новый URL-адрес насовсем. Когда поисковые системы встречают страницу с редиректом 301, они «понимают», что теперь необходимо индексировать новую страницу, а старую можно полностью исключить из индексации.
Помимо разных способов настройки переадресации, существуют разные виды редиректов. Каждый из них имеет своё кодовое название. Основные виды:
- 300 — сообщает, что по искомому запросу можно перейти не на одну, а на несколько альтернативных страниц;
- 301 — постоянный;
- 302 — временный;
- 303 — на схожую по тематике страницу;
- 305 — отсылающий к подключению через прокси-сервер.
Полный список кодов ответа сервера доступен тут
Файл .htaccess
.htaccess — это конфигурационный файл веб-сервера Apache, позволяющий управлять работой веб-сервера и настройками сайта с помощью различных параметров (директив) без изменения основного конфигурационного файла веб-сервера.
Синтаксис .htaccess
Синтаксис файла простой: каждая директива (команда) начинается с новой строки, после знака # можно добавлять комментарии, которые не будут учитываться сервером. Изменения на сайте вступают в силу сразу, перезагрузка сервера не требуется.
Основные спецсимволы:
- ^ — начало строки;
- $ — конец строки;
- . — любой символ;
- ⚹ — любое количество любых символов;
- ? — один определенный символ;
- [0-9] — последовательность символов, например, от 0 до 9;
- | — символ «или», выбирается или одна группа, или другая;
- () — иcпользуется для выбора групп символов
Основные переменные:
- %{HTTP_USER_AGENT} — поле User-Agent, которое передает браузер пользователя;
- %{REMOTE_ADDR} — IP адрес пользователя;
- %{REQUEST_URI} — запрашиваемый URI;
- %{QUERY_STRING} — параметры запроса после знака ?.
Примеры настройки редиректов
Для редактирования файла .htaccess и других конфигурационных файлов не рекомендуется использовать «Блокнот» Windows, лучше использовать специальные текстовые редакторы, например Notepad++.
ВНИМАНИЕ! Перед настройкой редиректов убедитесь, что в файле .htaccess присутствует команда: RewriteEngine On
301 редирект с одной страницы на другую
Redirect 301 /page-1/ http://site-example.ru/page-2/
301 редирект с домена без WWW на домен с WWW (главное зеркало – домен с www)
RewriteCond %{HTTP_HOST} ^site-example.ruRewriteRule (.*) http://www.site-example.ru/$1 [R=301,L]
301 редирект с домена с WWW на домен без WWW (главное зеркало – домен без www)
RewriteCond %{HTTP_HOST} ^www.site-example.ru$ [NC]RewriteRule ^(.*)$ http://site-example.ru/$1 [R=301,L]
301 редирект с протокола http на https
RewriteCond %{HTTPS} !=onRewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
301 редирект с протокола https на http
RewriteCond %{HTTPS} =onRewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
301 редирект с сохранением GET-параметров запроса
RewriteCond %{REQUEST_URI} /index.phpRewriteRule ^(.*)$ http://site-example.ru/ [R=301,L]
301 редирект для всех страниц одного домена на главную страницу другого домена
RewriteCond %{REQUEST_URI} (.*)RewriteRule ^(.*)$ http://site-example.ru/ [L,R=301]