301-й редирект. Что это такое, зачем он нужен и как его настроить на WordPress

301-й редирект. Что это такое, зачем он нужен и как его настроить на WordPress
Click here to view original web page at hostenko.com
301-й редирект. Что это такое, зачем он нужен и как его настроить на WordPress

Редирект – это переадресация. Нужен он для того чтобы перенаправить пользователей на другой URL (страницу или запись сайта) отличный от того, который они первоначально запросили. Например, если человек в адресной строке пишет ваш-сайт.com при правильной настройке он попадет на www.ваш-сайт.com или наоборот.

Существует несколько кодов ответа при редиректе

В спецификации HTTP/1.0:

301 – буквально означает “Документ перенесен окончательно”,

302 – “Документ перенесен временно”.

В спецификации протокола HTTP/1.1 появились такие коды:

303 – “ищите документ здесь”, код ответа указывает браузеру на то, что искомый документ требуется запросить методом GET, даже если первоначальный запрос выполнялся другим методом. Это код ответа, введенный для замены кода 302 в протоколе HTTP/1.1,

307 – “Запрашиваемый документ на короткое время доступен по другому URI”, указывает браузеру, что искомый документ требуется запросить тем методом (GET/POST), которым был выполнен первичный запрос, менять метод запроса запрещается. Этот код ответа также введен для замены кода 302 в протоколе HTTP/1.1,

308 – “Запрошенный документ был окончательно перенесен на новый URI”, этот код ответа добавлен в HTTP/1.1 вместо кода 301, дополнительно он означает, что метод запроса (GET/POST) при переходе по новому URI менять не разрешается. Если вы запросили ресурс в первом запросе методом GET, то и второй запрос должны выполнить методом GET.

Чаще всего для переадресации используется код ответа 301, поэтому переадресацию ещё называют 301-м редиректом. Все примеры в статье будут использовать именно этот код ответа. Настраивать 301-й редирект можно разными способами: PHP, JS, .htaccess, а также специальными плагинами.

Мы рассмотрим как это сделать с помощью плагина Redirection, а также путём редактирования файла .htaccess.

Плагин Redirection (Перенаправление)

После установки плагина Redirection на ваш сайт нужно перейти к его настройке. Это можно сделать одним из способов:

  • В консоли сайта, в разделе “Инструменты” перейти на вкладку Redirection.
  • Найти его в разделе плагины и нажать “Настройки”.

Для минимальной настройки редиректа достаточно заполнить только два поля, Source URL и Target URL в разделе Redirection.

перенаправление 310 на вордпресс сайте

С помощью этого плагина можно заменить некоторые длинные ссылки на более короткие. Это больше необходимо для удобства пользователь, поскольку короткие cсылки легче воспринимаются.

Подробнее о настройке плагина Redirection можно прочитать

в статье https://hostenko.com/wpcafe/plugins/rukovodstvo-po-url-perenapravleniyam-dlya-wordpress-saytov/

Редактирование файла .htaccess

В разделе управления хостингом указаны данные для подключения к файлам вашего сайта по FTP. Для подключения нужно использовать ftp-клиент, например Filezilla.

После подключения приступаем к редактированию файла .htaccess. Он находится в корневом каталоге вашего сайта.

Для редактирования стоит использовать такой редактор кода, в котором есть возможность задавать кодировку и формат конца строк, например, Notepad++.

Рассмотрим примеры переадресации:

  1. Редирект http://example.com на https://example.com, с учётом ссылок:

После подключения ssl-сертификата стоит добавить обязательную переадресацию с http на https, чтобы все ваши соединения были зашифрованы. Такой редирект исключит возможность подключения по протоколу http.

Для этого в самое начало файла .htaccess вставляем скопированные строки:

# BEGIN Redirect
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # END Redirect

  1. Редирект с www.example.com на example.com, с учётом ссылок:

# BEGIN Redirect
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] # END Redirect

Обратите внимание, если у вас подключен ssl-сертификат, строку:
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
стоит заменить на:
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

3. Редирект example.com на www.example.com, с учётом ссылок:

# BEGIN Redirect
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] # END Redirect

Обратите внимание, если у вас подключен ssl-сертификат, строку:
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
стоит заменить на:
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

При настройке данного редиректа нужно изменить название вашего сайта в базе данных, добавив www. Сделать это нужно в phpMyAdmin, отредактировав строки

siteurl и home в таблице wp_options (если префикс таблиц в вашей БД – “wp_”).

изменение базы данных при редиректе 301
Избавиться от технического домена вида example.hostenko.com.

По умолчанию при подключении вашего собственного домена на нашем хостинге автоматически добавляется 301 редирект с технического домена на ваш собственный. Но если вам это не подходит, можете сделать технический домен вида example.hostenko.com полностью недоступным с помощью кода указанного ниже. Им следует заменить тот код, который добавляется автоматически при подключении собственного домена.

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

# BEGIN Redirect old domain to 404
RewriteCond %{HTTP_HOST} ^example.hostenko.com$ [NC] RewriteRule ^(.*)$ - [R=404,L] # END Redirect

Это будет означать что сайт не будет открываться по домену example.hostenko.com

Важно! При сохранении отредактированного файла обязательно стоит убедиться, что формат конца строк в UNIX-формате (LF), а также кодировка в формате UTF-8 без BOM.

редирект 301 на вордпрес сайте
редирект 301 на вордпрес сайте
Если Вы хотите использовать несколько из вышеперечисленных редиректов, стоит прописать их в такой последовательности:
  1. Избавление от старого домена.
  2. Перенаправление с www.example.com на example.com или Перенаправление example.com на www.example.com.
  3. Перенаправление http://example.com на https://example.com.

Существует много других правил, в частности, использующих регулярные выражения. Но они индивидуальны и нужны не так часто, как те, что описаны выше и их описание выходит за рамки данной статьи.

Если у вас возникла необходимость написать более сложные правила переадресации, советуем посмотреть документацию по web серверу apache 2 и его модулю mod_rewrite, а также по регулярным выражениям формата PCRE: