Личный блог Михаила Шашина

Небольшие заметки и статьи, который могут быть полезны как студентам, так и обычным людям.

Переезд Opencart на https

Где-то вычитал я, что на поисковые позиции положительно влияет использование защищенного протокола https, вместо стандартного http, поэтому и решил перевести свой магазин студенческих работ на этот протокол.

  1. Первым делом необходимо подключить SSL-сертификат. Это оказалось очень просто, благо хостинг, на котором расположен сайт позволяет нажатием одной кнопки добавить самоподписанный SSL-сертификат к любому сайту. Мне такого сертификата было достаточно, поэтому я не стал себе усложнять жизнь. Сказано — сделано.
  2. Следующий шаг — включение в настройках сайта работы по SSL. Для этого переходим в админке по следующему пути: Система->Настройки->{Выбираем свой магазин}->Сервер. На данной странице ищем раздел «Безопасность», ставим флажок «Использовать SSL» в значение Да и сохраняем.
  3. Третий шаг — Прописать адреса в настройках конфигурации. Открываем файл config.php, и записываем https протокол

Было:

// HTTP
define('HTTP_SERVER', 'http://site.ru/');
// HTTPS
define('HTTPS_SERVER', 'http://site.ru/');

Стало:

// HTTP
define('HTTP_SERVER', 'http://site.ru/');
// HTTPS
define('HTTPS_SERVER', 'https://site.ru/');

В файле admin/config.php выполняем аналогичные замены.

Было:

// HTTP
define('HTTP_SERVER', 'http://site.ru/admin/');
define('HTTP_CATALOG', 'http://site.ru/');
// HTTPS
define('HTTPS_SERVER', 'http://site.ru/admin/');
define('HTTPS_CATALOG', 'http://site.ru/');

Стало:

// HTTP
define('HTTP_SERVER', 'http://site.ru/admin/');
define('HTTP_CATALOG', 'http://site.ru/');
// HTTPS
define('HTTPS_SERVER', 'https://site.ru/admin/');
define('HTTPS_CATALOG', 'https://site.ru/');

4. Четвертый шаг — добавление переадресации на новый протокол в .htaccess. C этим пунктов возникло огромное количество проблем, т.к. либо сайт переадресовывался, но было доступен по обоим протоколам, либо выдавал 404 ошибку при открытии любой страницы, либо переадресации не было никакой. Путем проб и ошибок, нашел рабочий вариант. Необходимо сразу же после RewriteEngine On Добавить:
RewriteCond %{ENV:HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

5. Но и это еще не все. На следующий день я зашел в webmaster Яндекса и он мне сказал, что не может найти файл robots.txt. Это произошло по той причине, что я переадресовал все запросы на новый протокол, а робот яндекса о новом протоколе еще не знал. Поискав ответы в сети, я первым делом в файл .htaccess добавил переадресацию на старый http протокол при запросе файла robots.txt. Для этого перед RewriteEngine On  нужно добавить:

<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
Order deny,allow
Deny from all
</FilesMatch>

Теперь robot.txt стал доступным, осталось только в вебмастере яндекса в разделе «Переезд сайта» указать, что сайт переезжает на новый протокол (поставив галочку «Переезд на https»). Спустя две недели переезд удачно состоялся).

Повлияло ли это на поисковые позиции — пока сказать сложно. Однако, спустя неделю по старому моему проекту пришло письмо с текстом:

С октября 2017 г. в браузере Chrome (версии 62) будет показываться предупреждение о возможной опасности, когда пользователи вводят текст в поле на странице HTTP или переходят на такую страницу в режиме инкогнито.

Следующие URL на Вашем сайте содержат текстовые формы (<input type=»text»> или <input type=»email»>), которые будут вызывать предупреждение в браузере Chrome. Проверьте эти страницы и примите необходимые меры для защиты пользователей. В списке представлены не все URL.

В будущем мы планируем помечать любые страницы, не использующие протокол HTTPS, как небезопасные.

Так что, видимо не зря я помучился) Если Google за это взялся, то и Яндекс тоже скоро обратит внимание.

Post a comment