Як інтернет-магазину на Magento перейти з HTTP на HTTPS
У попередніх статтях ми вже торкалися питань щодо переходу сайту на безпечний протокол HTTPS. У цій статті ми розглянули загальні моменти по установці сертифіката SSL і протоколу HTTPS на сайт, а в цій статті більш детально розглянули SEO-шні моменти переходу на безпечний протокол.
Продовжимо висвітлення даної теми і в сьогоднішній статті розглянемо детальніше практичні рекомендації по встановленню HTTPS для інтернет-магазинів, що працюють на двигуні Magento.
Рекомендуємо вам спочатку ознайомитися з вищезгаданими статтями, а потім вже переходити до прочитання цієї статті, — це дозволить вам краще зрозуміти суть питання.
Отже, до роботи!
Ви вже прочитали попередні статті серії і у вас вже встановлені сертифікати SSL на сервері. Нагадаємо, що практично всі великі хостинги не тільки продають такі сертифікати, а й допомагають з їх встановленням на сервер. Якщо ваш сайт працює під управлінням CMS Мадженто і ви не знаєте, що робити далі – значить, ця стаття для вас.
Основні етапи включення HTTPS`у для Мадженто-сайту:
- Зміна налаштувань в Панелі адміністратора
- Оновлення посилань в базі даних
- Перевірка встановлення https
Увага: робіть бекап всіх файлів сайту і бази даних перед будь-якими змінами
Бажано перед встановленням сертифікатів SSL і переходом на HTTPS вимкнути кеш в Мадженто.
Зміна налаштувань в Панелі адміністратора
Після встановлення сертифіката на сервер, в першу чергу змінюємо налаштування в Панелі адміністратора за адресою System > Config > General > Web (Система > Конфігурація > Загальні > Веб/Інтернет). Тут нам потрібно замінити в полі Базовий URL посилання сайту з http на https. Врахуйте, що це поле є в двох секціях: Незахищене з’єднання і Безпечне з’єднання. Для нормального функціонування https`а досить замінити Базовий URL тільки в секції Безпечне з’єднання, але зверніть увагу, що для деяких функцій в шаблонах при генерації посилань потрібно передавати додатковий параметр array('_secure'=>true)
. В іншому випадку посилання сайту будуть генеруватися тільки у вигляді http://...
. Щоб не змінювати всі функції в шаблонах теми, досить лише замінити формат посилання і для налаштування Базовий URL в секції Незахищене з’єднання. Метод не ідеальний, але робочий.
Після цього виставте Так для полів «Використовувати захищені URL в користувацькій частині» і «Використовувати захищені URL в панелі адміністрування».
Потім натисніть «Зберегти конфігурацію» в правому верхньому кутку сторінки налаштувань.
Тут важливо діяти обачно. У разі, якщо ви оновлюєте ці налаштування, а на самому сервері ще не встановлені сертифікати SSL, ви ризикуєте заблокувати собі доступ до Панелі адміністрування через багаторазовий цикл переадресацій.
Якщо все зроблено правильно і в потрібній послідовності, можете оновити головну сторінку свого сайту, але вже з використанням https:// на початку посилання. Зверніть увагу, що адресний рядок змінився: початок посилання підсвічується зеленим («безпечним») кольором, а браузер позначає сайт як «Надійний».
Але, як ви можете помітити, деякі посилання на сторінках сайту як і раніше містять старі HTTP адреси. Це відбувається тому, що Мадженто зберігає деякі посилання як статичні в базі даних. Щоб весь інтернет-магазин Magento перевести на HTTPS (без попереджень про змішаний контент), вам необхідно оновити посилання на всі ресурси сайту.
Оновлення посилань в шаблонах активної теми
Деякі посилання можуть бути прописані прямо в шаблонах активної теми, за адресою app/design/frontend/{ПАКЕТ_ТЕМ}/{АКТИВНА_ТЕМА}/template/
.
Скористайтеся пошуком та, якщо знайдете статичні посилання, замініть протокол посилання з http на https.
Оновлення посилань в базі даних
Якщо на вашому сайті лише кілька товарів, ви можете оновити адреси посилань шляхом простого редагування існуючих сторінок через Панель адміністрування. Для великих інтернет-магазинів така процедура не підходить – набагато простіше буде змінити всі посилання через інтерфейс роботи з базами даних MySQL (наприклад, phpMyAdmin). В цьому випадку змінити всі посилання на сайті можна буде за допомогою декількох SQL-запитів.
Розглянемо цю процедуру з використанням phpMyAdmin.
Відкрийте phpMyAdmin, а потім відкрийте потрібну базу даних (яку використовує поточна інсталяція Мадженто). Потім відкрийте вкладку SQL, тут введіть потрібні SQL-запити.
Приклади SQL-запитів для оновлення посилань в таблицях catalog_category_entity_text
(посилання, які можуть використовуватися в описі категорій товарів) і cms_page
(посилання, які можуть бути використані в тексті CMS-сторінок – в адмінці за адресою CMS — Page).
UPDATE catalog_category_entity_text SET value = REPLACE(value, 'http://VASH-DOMEN', 'https://VASH-DOMEN'); UPDATE cms_page SET content = REPLACE(content, 'http://VASH-DOMEN', 'https://VASH-DOMEN');
Увага: замініть VASH-DOMEN
в запитах на свій фактичний домен. Бажано використовувати повне входження посилання домену, щоб випадково не замінити інші записи, які містять назву вашого домену (наприклад, адреси електронних скриньок).
Пояснення SQL-запитів:
UPDATE
– цей оператор оновлює стовпці відповідно до їх нових значень в рядках потрібної таблиціcatalog_category_entity_text
– назва таблиці в базі данихcms_page
– назва таблиці в базі данихSET
– в цьому виразі вказується список полів таблиці, які будуть оновлені і безпосередньо самі нові значення полівvalue
– поле (стовпець) таблиціcatalog_category_entity_text
content
– поле (стовпець) таблиціcms_page
REPLACE()
– функція, яка замінює певні дані. Синтаксис функції в прикладі:REPLACE({поле таблиці, де потрібно щось замінити}, '{точне входження, яке слід замінити}', '{точне входження, яким потрібно замінити старі дані}')
Введіть дані SQL-запити та натисніть ОК. Це замінить всі старі посилання новими в потрібних таблицях бази даних.
Врахуйте, що посилання вашого сайту можуть зберігатися і в інших таблицях/полях бази даних, тоді вам потрібно буде змінити записи SQL-запитів. Спочатку скористайтеся пошуком по базі даних, щоб виявити таблиці, які містять такі посилання.
Після цього не забудьте виконати всі рекомендації зі статті SEO-шні моменти переїзду з http на https
Перевірка встановлення https на Мадженто
Щоб переконатися, що ваш інтернет-магазин повністю налаштований на HTTPS, ми рекомендуємо протестувати ваш сайт за допомогою онлайн-інструментів (наприклад, SSL Labs або SSL Checker).
Крім того, якщо ви використовуєте браузер Chrome, відкрийте сайт і перейдіть в режим інструменту розробника (натисніть клавішу F12) у вкладку Security – там не повинно бути ніяких попереджень і помилок. Перевірте таким способом основні види сторінок на своєму сайті (головна сторінка, сторінка категорій, сторінка товару і т.п.).
Після того, як ви переконаєтеся, що все працює так, як потрібно, можете знову включити кеш.
Рекомендуємо також ознайомитися:
- Як перейти з HTTP на HTTPS – проста інструкція встановлення SSL
- SEO-шні моменти переїзду з http на https