Набор классных редиректов: https, www. Как проверить редирект

Редиректы на https

Почему стал нужен редирект на https?!

С новыми требованиями Google многим начал требоваться редирект на https, но не у всех получается воспользоваться введу различных причин. Я довольно часто встречался с этой проблемой на различных сайтах на 1C-Битрикс, да и на WordPress это стандартная ситуация

Куда писать код редиректа

Как правило в корне CMS лежит файл с именем .htaccess, если его нет то просто создайте его. Между строками <ifModule mod_rewrite.c> и </IfModule> напишите ваш код. Редирект следует писать перед остальными перенаправления вашей CMS

Простой редирект на https


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

Этот редирект перенаправит ваш сайт на https без каких либо проблемм

Редирект на https c www и без www


RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https [OR]
RewriteCond %{HTTP_HOST} ^www.example.ru$ [NC]
RewriteRule ^(.*)$ https://example.ru/$1 [R=301,L]

Где example.ru это адрес вашего сайта

Перенаправление с нескольких доменов на один

Зачем это нужно и для чего использовать.

Если ваш сайт имеет несколько доменов, но вы хотите их все перенаправить на один то этот редирект для вас. Данный редирект понадобился когда я занялся SEO оптимизацией одного сайта. Из-за того что у него было несколько доменов то была бешенная перелинковка и имелось 80000 ссылок сайта на самого себя и ни одна система слежения ссылочной массы не могла показать мне сколько действительно доноров ссылается на этот сайт. Да и тем более когда некачественные ссылки помогали раскрутке сайта?! А это действительно были некачественные ссылки потому что страницы трафика не имели и были анкорными.

Сам код.


RewriteEngine On
RewriteCond %{HTTP_HOST} !^(.*)example.ru.*$
RewriteRule ^(.*)$ http://example.ru/$1 [R=301,L]

example.ru — это адрес того сайта на который нужно сослать все домены. Для тех кто в танке ещё раз скажу, что этот код будет работать только если все домены будут привязаны к одной и той же папке на хостинге.

Как проверить редирект?!

Да очень просто! на сайте htaccess tester. Работает это так. В первой строке вы пишите адрес на котором вы проверяете перенаправление, т.е. то по какому адресу будет обращаться клиент, во второй строке вы пишите ВЕСЬ код который есть между строками <ifModule mod_rewrite.c> и </IfModule>. Я обращаю внимание на слово весь.

Если вы не уверены в своём редиректе не поленитесь проверить его. Разные хостинги по разному относятся к ошибкам в редиректах иногда можно даже «уронить» сайт. Что я тоже делал не раз. Пожалуй только на бегете довольно лояльно относятся к перерасходу ресурсов сервера