В посте по тексту ниже рассмотрим поближе варианты различных 301 редиректов…
Способы настройки 301 редиректа для администраторов сайтов, это одна из важнейших наук, которой следует уделить время для изучения! чтобы при случае настроек 301, особо не растерять полезный вес сайта…
Например, пост будет полезен тем владельцам сайта, которые переносят свой сайт на https
, либо вообще решились на кардинальный шаг – перенести свой сайт на новый домен!
…а также разные мелкие настройки редиректа, которые здорово выручать в неких жизненных ситуациях.
Без лишних слов, к делу:
- настройка 301 редиректа со старого на новый домен
- изменить префикс меток и рубрик на работающем сайте
- простой 301 редирект – перенаправления
- после переезда на https
- редирект для хостинга Джино
- редирект для хостинга Спринтхост
- редирект с протокола https на http
- как сделать редирект с с html на без html
- редирект с .html на без .html (url со слешем в финале)
- редирект с html на без html (url БЕЗ слеша в финале ссылки)
- 301 редирект с www на без www
- 301 редирект с имени без WWW на имя WWW
- 301 редирект средствами PHP
- перенаправление – редирект – со всех страниц поддомена на основной домен
- затем (сразу после первого кода) логично добавить перенаправление с главной страницы поддомена на главную домена:
настройка 301 редиректа со старого на новый домен
Если вы хорошо подумали относительно шага по переносу сайта с одного (старого – old) домена на новый, то помогут эти строки: (как понимаете, все показанные в статье вариации кодов для файла .htaccess)
Вообще, как мне представляется по заданным в последнее время вопросам, нынче многие подумывают о переносе сайта на новый домен: в основном желают съехать с зоны RU на какие-то иные… заменяя при этом полностью имя домена, хотя, возможно, есть резон рассмотреть вопрос просто-напросто изменить доменную зону, оставив самое имя домена прежним.
Всё же напоминаю: подумать, прежде чем решиться на подобное предприятие. И, конечно же, при первоначальном выборе домена для своего сайта поинтересоваться у знающих людей о тех или иных целесообразностях выбора.
Итак, код, если переносите сайт с домена на домен:
RewriteCond %{HTTP_HOST} ^old-site\.ru$ [NC]
RewriteRule ^(.*)$ https://www.new-site.ru/$1 [R=301,L]
www в зависимости от вашего варианта использования доменного имени.
Если
изменить префикс меток и рубрик на работающем сайте
выручит такая настройка редиректа:
# Redirect 301 я изменил префикс рубрик и меток
<IfModule mod_rewrite.c>
RedirectMatch 301 /category/(.*) https://домен.ru/my-cats/$1
RedirectMatch 301 /tag/(.*) https://домен.ru/my-tags/$1
</IfModule>
Как изменить префиксы меток, рубрик описано по указанной ссылке.
чтобы банально выполнить со старой страницы на новую, поможет
простой 301 редирект – перенаправления
# Redirect 301
RewriteEngine on
# простой редирект
Redirect 301 /avto https://домен.ru/
Redirect 301 /category/bez-rubriki/ https://домен.ru/новое-имя-категории
Примера ради:
/category/bez-rubriki/ = пробел = https://домен.ru/
после переезда на https
редирект для хостинга Джино
# для хостинга ДЖИНО - добавим так: если этой строки нет выше RewriteEngine On
RewriteEngine On
# RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
# RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
редирект для хостинга Спринтхост
# для хостинга Спринтхост
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Кому-то может быть подойдёт такой пример редиректа 301 при переезде с http на https
:
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
если вдруг возникает циклический редирект, попробуйте этакие строки:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
как осуществить переезд сайта с http на https
читайте в этом посте Как самостоятельно перевести сайт на https — сертификат ssl — шифрование. А если есть желание заказать переезд у меня, то познакомьтесь с условиями ЗДЕСЬ Переведу Ваш сайт на https — расторопно и качественно.
Однако, как ни крути, но бывают такие случаи, когда требуется съехать с нового протокола https
на прежний… http
к примеру, в работах с тестовыми сайтами…
редирект с протокола https на http
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
как сделать редирект с с html на без html
Если вы у вас на сайте ссылки имеют в финале, скажем так, .html (устаревший вариант) и вы его теперь решили убрать из урла, то в этом случае при переходе по старой ссылке С .html возникнет проблема – старые ссылки отдадут 404-ую страницу – это ошибка! Например, вы делились в соцсетях статьями, URL которые были с “хвостиком” и теперь, если пользователь решится по ним перейти к вам на сайт, – он не увидит статью, а место нее 404-ю страницу. НЕХОРОШО.
В подобных случаях следует организовать 301 редирект со старых страниц на новые. Решение простое! для всего сайта РАЗОМ поможет прописка всего одной строки (не считая RewriteEngine on
) кода в файл .htaccess – файл расположен в корневой директории.
редирект с .html на без .html (url со слешем в финале)
Добавим в файл .htaccess такие строки:
RewriteEngine on
RewriteRule (.+)\.html?$ https://domain.ru/$1/ [R=301,L]
Замените domain.ru на домен своего сайта.
Отныне переадресация активна: .html
переадресовывает на адрес без .html
Напоминаю, редирект со слешем в конце ссылки (смотрите ваши канонические ссылки).
редирект с html на без html (url БЕЗ слеша в финале ссылки)
Ну а если вам нужно организовать редирект со страниц ссылка которых с .html
на без .html
БЕЗ СЛЕША – то в .htaccess прописываем такую строчку:
RewriteRule (.+)\.html?$ https://domain.ru/$1 [R=301,L]
301 редирект с www на без www
(тот случай, когда главное зеркало – НЕ www)
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
А это наоборот:
301 редирект с имени без WWW на имя WWW
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]
301 редирект средствами PHP
Функция: wp_redirect()
Отработает перенаправление (редирект) на указанный URL. Возможно указывать статус редиректа – 301, 302 и т.п.
Чтобы функция корректно работала желательно указывать полный УРЛ на стр. куда отправлять: функцию непременно требуется завершать обработку скрипта функцией exit() Либо в некоторых случаях die().
/*РЕДИРЕКТ с метки: можно указать условие любой страницы*
add_action( 'template_redirect', function() {
if( is_tag( 142 ) ) { // ID страницы = возможна автоматизация и управление из админки...
wp_redirect( '/adress/', 301 );
exit;
} } );
/*РЕДИРЕКТ с метки: можно указать условие любой страницы*/
Условные теги WordPress
перенаправление – редирект – со всех страниц поддомена на основной домен
# редирект со всех страниц поддомена на основной домен
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} test.example.com
RewriteRule /(.*) https://example.com [R=301,L]
</IfModule>
# редирект со всех страниц поддомена на основной домен
затем (сразу после первого кода) логично добавить перенаправление с главной страницы поддомена на главную домена:
RewriteCond %{HTTP_HOST} ^test.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com%{REQUEST_URI} [R=301,NC,L,QSA]
Как понимаете, если этого не выполнить, то получится так:
- переходы на все страницы поддомена
test.site.ru/то-то-и-то-то
будут перенаправлены на основной site.ru домен! - если второй код не выполнить и пробовать перейти на главную страницу поддомена –
test.site.ru
, никакого перенаправления наsite.ru
не будет!
заметки:
Если вы будете работать с wp_redirect() в файлах шаблона, то это обычно вызывает ошибку (Output already started. Headers not sent.).
Все дело в том, что, если использовать функцию после того как заголовков (header) отправлены, отработка не сможет быть выполнена.
Рекомендую для подобных отработок (обработок) определять функции в плагине (как создать свой плагин).
В теме (в файлах шаблона сайта) логичнее использовать редирект средствами javascript:
document.location.href = 'http://example.com';
Как отрабатываются установленные на сайте редиректы, тестируйте здесь… или здесь (Яндекс)
…статья будет дополняться естественным образом…
Создание… продвижение сайтов: студия ATs media запросто с WordPress
mihalica.ru !
Спасибо — подборка мне кстати!
Оч. спасибо!
Написал комм и аболделллл! как заказать у вас и мне такую собачку благодарности за комментарий, а?
пишите…