Редирект для сайта на WordPress: через плагин или htaccess

Редиректы для сайта на CMS WordPress можно выполнить добавив записи в файл htaccess, ознакомится с чем можно в статье ниже.

301 редирект для сайта на WordPress

Для этого переходим в административную панель сайта во вкладку «Плагины»-«Добавить новый», где в поиске вводим «redirection».

Установка плагина для редиректов на сайт WordPress

Устанавливаем появившийся плагин (автор John Gadley) и активируем его.

Активация плагина с редиректами на сайте Вордпресс

Переходим в настройки.

Переход в настройки плагина с редиректами на сайте Вордпресс

Соглашаемся с базовыми настройками.

Настройки шаг 1 плагина с редиректами на сайте WordPress

Система проверит сайт и завершаем настройку.

Настройки шаг 2 плагина с редиректами на сайте WordPress

Дожидаемся установки и переходим в интерфейс плагина.

Настройки шаг 3 плагина с редиректами на сайте WordPress

Чтобы сделать редирект с одной страницы на другую потребуется перейти в «Редирект».

Настройка модуля с редиректами на сайте WordPress

Далее «Добавляем новый».

Настройка плагина с редиректами на сайте WordPress

Далее заполняем:

  • Исходный URL;
  • Целевой URL.
Настройка перенаправления с http на https и с WWW на без WWW и обратно в плагине для сайта на CMS WordPress

Все готово в списке появится.

Редирект с http на https для WordPress

Чтобы включить настройку потребуется перейти в вкладку «Сайт» и включить опцию:

Настройки перенаправления со страницы на страницу в плагине Вордпресс

Force a redirect from HTTP to HTTPS

С WWW на без WWW и наоборот

В этой же вкладке сайт необходимо поставить галочку у нужного пункта.

Настройки перенаправления со страницы на страницу в плагине Вордпресс

Важно! По умолчанию настройка не делает никаких изменений в этом плане.

Как сделать редирект через файл htaccess

Для того, чтобы перенаправить пользователя с одной страницы на другую требуется использовать следующую комбинацию:

Redirect 301 site.ru/page1/ site.ru/page2/

Где:

  • page1- страница которая будет переадресовывать;
  • page2 – открывающийся документ.

Важно! Можно записывать адреса в относительном виде, например, /page1/ и /page2/.

Также допускается использование конструкции:

Redirect permanent site.ru/page1/ site.ru/page2/

Для того, чтобы выполнить правило, потребуется посетить административную панель хостинга (или же зайти через FTP), где в корневой папке сайта лежит файл htaccess.

Файл htaccess на сервере

Вводим нужное нам правило.

прописанный редирект в htacess

Как сделать перенаправление на другой домен?

В этом случае необходимо автоматически перекидывать всех пользователей с домена domain1.ru на domain2.ru при помощи функции:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.ru$

RewriteRule ^(.*)$ http://www.domain2/$1 [R=301,L]

Переадресация с http на https

При переезде сайта с http на https (установка SSL-сертификата) потребуется код, который не требует дополнительных модификаций:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP:X-HTTPS} !1

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Второй метод осуществляет перенос с http://domain.ru на https://domain.ru:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP:X-HTTPS} !1

RewriteCond %{HTTP_HOST} ^domain\.ru$

RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]

Третий способ выполняет аналогичную функцию, но отключает перенаправление для robots.txt:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP:X-HTTPS} !1

RewriteCond %{REQUEST_URI} !robots.txt

RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]

В 4-й версии конечным пунктом для пользователя станет https://www.domain.ru:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP:X-HTTPS} !1

RewriteCond %{HTTP_HOST} ^domain\.ru$

RewriteRule ^(.*)$ https://www.domain.ru/$1 [R=301,L]

Позволяет сделать форвардинг с http://www.poddomen.domain.ru на https://poddomen.domain.ru:

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ https://poddomen.domain.ru/$1 [R=301,L]

RewriteBase /

RewriteCond %{HTTP:X-HTTPS} !1

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Последняя версия, дающая возможность сделать связь между http://poddomen.domain.ru на https://www.poddomen.domain.ru:

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} ^poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ https://www.poddomain.domain.ru/$1 [R=301,L]

RewriteBase /

RewriteCond %{HTTP:X-HTTPS} !1

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

С www на без WWW

В функции ниже осуществляется переход из www.poddomen.domain.ru на poddomen.domain.ru:

<IfModule mod_rewrite.c>

Options +FollowSymLinks

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ http://poddomen.domain.ru/$1 [R=301,L]

</IfModule>

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

<IfModule mod_rewrite.c>

Options +FollowSymLinks

RewriteEngine on

RewriteCond %{HTTP_HOST} !^poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ http://poddomen.domain.ru/$1 [R=301,L]

</IfModule>

301 редирект с домена без WWW на с WWW

<IfModule mod_rewrite.c>

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} ^poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ http://www.poddomen.domain.ru/$1 [R=301,L]

</IfModule>

Также имеется второй метод не требующий ввода доменного имени:

<IfModule mod_rewrite.c>

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]

RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

</IfModule>

C https на http

При необходимости сделать обратную интеграцию и перейти на незащищенную версию протокола можно воспользоваться:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP:X-HTTPS} 1 [NC]

RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

301 редирект на http для одной страницы

В этой ситуации подойдет:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP:X-HTTPS} 1 [NC]

RewriteCond %{REQUEST_URI} ^/нужная-страница$

RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

Второй метод осуществляет общий переезд на защищенный протокол (https), но одна страница останется на старом протоколе (http). Этот способ подойдет для интеграции 1С Bitrix с 1С Предприятие, так как система не может работать с защищенным протоколом:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP:X-HTTPS} !1

RewriteCond %{REQUEST_URI} !^/необходимая-страница$

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTP:X-HTTPS} 1 [NC]

RewriteCond %{REQUEST_URI} ^/необходимая-страница$

RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

Для готовой интеграции с 1С-Битрикс, формула позволяющая исключить директорию bitrix/admin/1c_exchange.php из общего правила:

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteCond %{HTTP:X-Forwarded-Proto} !https

RewriteCond %{REQUEST_URI} !^/bitrix/admin/1c_exchange\.php$ [NC]

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Форвардинг на https для конкретной страницы

Для этой цели можно воспользоваться:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP:X-HTTPS} !1

RewriteCond %{REQUEST_URI} ^/Необходимая директория_страница$

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

С несуществующего файла

В этом случае можно будет применить:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www.)?domain.ru$

RewriteCond %{REQUEST_URI} ^/robots.txt$

RewriteRule ^(.*)$ /poddomen/script.php [R=301,L]

Также подойдет второй способ:

Options +FollowSymLinks

RewriteEngine on

RewriteCond %{HTTP_HOST} !^poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ http://poddomen.domain.ru/$1 [R=301,L]

Перенаправление на подкаталог

В этом случае возможно пербрасывать пользователей с poddomen.domain.ru на подкаталог poddomen.

Способ 1:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/poddomen
RewriteCond %{HTTP_HOST} ^poddomen.domain.ru$ [NC]
RewriteRule ^index.php(.*)$ /poddomen/$1 [L,QSA]



Способ 2:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^poddomen.domain.ru$
RewriteCond %{REQUEST_URI} !/poddomen/
RewriteRule ^(.*)$ /poddomen/$1 [L]

В случае, когда речь идет о www.poddomen.doamin.ru необходимо применить:

RewriteEngine on

RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?poddomen\.domain\.ru$

RewriteCond %{REQUEST_URI} !/poddomen/

RewriteRule ^(.*)$ /poddomen/$1 [L]

С любой страницы на главную

В этой ситуации поможет:

RewriteEngine On
RewriteBase /

RewriteRule ^(.*)$ index.php [L,QSA]

С поддомена на основной домен

Если требуется выполнить условие для всех поддоменов без исключения:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(.+).domain.ru$
RewriteRule (.*) http://site.ru/$1?region=%1 [L,R=301,QSA]

Когда речь идет о конкретном поддомене следует использовать:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^poddomen.domain.ru$ [NC]
RewriteRule (.*) http://site.ru/$1?region=poddomen [L,R=301,QSA]

Как проверить работу 301 редиректа?

Для этого можно использовать инструмент проверки ответа сервера Яндекса:

https://webmaster.yandex.ru/tools/server-response/

Здесь вводим адрес первой страницы и видим следующее:

Проверка 301 редиректа через сервис

Как видим правило применилось и работает корректно.

Подписывайтесь на наш канал в Яндекс.Дзен

Подписывайтесь на наш Telegram-канал

Подписывайтесь на наш Youtube-канал

Подписывайтесь на нашу группу ВКонтакте

Комментарии 4

  • Здравствуйте, у вас ошибка в заголовках (перепутали заголовки в статье):

    301 редирект с домена без WWW на с WWW
    В функции ниже осуществляется переход из www.poddomen.domain.ru на poddomen.domain.ru:

    и соответственно «С www на без WWW» их нужно местами поменять

  • Я вручную все настраиваю, дольше но зато надежней. Плагин это не то. Так ручками весь код прощупаеш от а до я

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (7 оценок, среднее: 4,43 из 5)
Загрузка...