Правильный редирект на основной домен для Bitrix (через .htaccess)

Ох уж это SEO. Ох уж эти поисковые системы. Ох уж эти программисты!​

На днях один хороший знакомый попросил подключить к его сайту HTTPS. В принципе там всего делов тупо заплатить за сертификат, а потом написать в техподдержку. Но, нашлись умельцы, которые за это просили 9000 руб. Прошу заметить, в эту сумму стоимость сертификата не входила. Только работы.

Итак, HTTPS сертификат хостер поставил. Что дальше?

Предположим, основной домен сайта — domain.ru (без www).
Есть еще алиасы (псевдонимы) домен.рф и domen.ru.
Что получается? А получается, что на главную страницу сайта можно попасть по двенадцати ссылкам. Перечислю:

  • http://domain.ru/
  • http://www.domain.ru/
  • https://domain.ru/
  • https://www.domain.ru/
  • http://www.домен.рф/
  • http://домен.рф/
  • https://www.домен.рф/
  • https://домен.рф/
  • http://domen.ru/
  • http://www.domen.ru/
  • https://domen.ru/
  • https://www.domen.ru/

И так для каждой страницы, а их на сайте много! Т.е. поисковый робот по факту видит не один сайт, а двенадцать разных! И у каждого из двенадцати одинаковый контент, что естественно скажется на результатах ранжирования в поисковой выдаче не лучшим образом.

Внимание! Этот метод хорошо применять уже после того, как поисковые системы переиндексировали ваш сайт после перехода на HTTPS. Пока этого не случилось, лучше указать основной домен с https в директиве Hosts в файле robots.txt и дождаться индексации страниц. Т.е. не спешите, иначе можете получить пустые снипеты в поисковой выдаче.

Что делать? Настроить редирект конечно. Чтобы в независимости от того по какому адресу пользователь запрашивает страницу, его принудительно перекидывало бы на https://domain.ru/

В этом не было бы сложностей, но! Дело в том, что сайт у знакомого на Bitrix. Это подразумевает обмен данными с 1С. Программист 1С утверждает, что используемая версия не умеет работать с https, это раз. Ссылка на скрипт отвечающий за обмен прописана вообще для домена domen.ru Т.е. выгладит так http://www.domen.ru/bitrix/admin/1c_exchange.php

Ну на счет https я еще могу понять, а ссылку поменять не особенно сложно. Впрочем, проще сделать все на стороне сайта. Итак, открываю .htaccess и вписываю под строкой RewriteEngine On следующий код:

RewriteCond %{REQUEST_FILENAME} robots.txt$
RewriteRule ^([^/]+) $1 [L]
 
RewriteCond %{HTTP_HOST} !^domain\.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/bitrix/admin/1c_exchange.php
RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]
 
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REQUEST_URI} !^/bitrix/admin/1c_exchange.php
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

И всё.

Помогло? Зашли Админу на чай.
 

Поясню коротко. Первые две строки позволяют запрашивать файл robots.txt без редиректа. Это важно, чтобы поисковик мог скачать его по всем 12-ти адресов без перенаправлений.

Следующие три строки говорят, что если запрос пришел на любой домен кроме domain.ru, то его нужно переадресовать на https://domain.ru/, кроме случаев, когда запрашивают страницу /bitrix/admin/1c_exchange.php

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

Вот, собственно, и вся премудрость.

Видоизменив данный код, вы легко можете настроить редирект на своем сайте и добавить страницы-исключения.

А кому помогло, зашлите пару рублей. Мне на чай, вам на удачу.

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

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