Ох уж это 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://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.
Вот, собственно, и вся премудрость.
Видоизменив данный код, вы легко можете настроить редирект на своем сайте и добавить страницы-исключения.
А кому помогло, зашлите пару рублей. Мне на чай, вам на удачу.
Напишите комментарий