Нічого не знайдено

Спробуйте інший пошуковий запит

Популярні запити:

Додати в кошик

Кошик

У вас поки немає покупок

Переглянути маркетплейс

Зміна адреси сайту в OpenCart: конфіги, база даних і 301-редиректи

Куди прописати новий домен в OpenCart: config.php і admin/config.php, чистка бази від старих посилань, 301-редиректи і чек-лист після переїзду.

4 хв читання
116
0
Зміна адреси сайту в OpenCart: конфіги, база даних і 301-редиректи

Магазин переїхав на новий домен, вітрина відкривається, а адмінка вперто перекидає на стару адресу. Або інший варіант: сторінки нібито працюють, але верстка розсипалася, картинки зникли, а консоль браузера завалена помилками mixed content і посиланнями на домен, якого вже не існує. Обидві ситуації мають одну причину: адреса сайту в OpenCart прописана не в одному місці, і змінити її «в налаштуваннях» неможливо, бо такого пункту в адмінці просто немає.

Розберімо, де насправді живе адреса магазину і що треба зачепити, аби переїзд пройшов без втрат.


Де OpenCart зберігає адресу

Не в базі даних, як багато хто очікує. Базова адреса задається константами у двох файлах:

  • config.php у корені сайту, для вітрини;
  • admin/config.php, для панелі керування.


У кореневому файлі для OpenCart 3.x це виглядає так:

// HTTP
define('HTTP_SERVER', 'https://newshop.ua/');

// HTTPS
define('HTTPS_SERVER', 'https://newshop.ua/');


В адмінському файлі констант більше, і саме його найчастіше забувають:

// HTTP
define('HTTP_SERVER', 'https://newshop.ua/admin/');
define('HTTP_CATALOG', 'https://newshop.ua/');

// HTTPS
define('HTTPS_SERVER', 'https://newshop.ua/admin/');
define('HTTPS_CATALOG', 'https://newshop.ua/');


Два моменти, на яких спотикаються найчастіше.

Перший: слеш у кінці адреси обов'язковий. Без нього OpenCart склеїть шляхи неправильно, і ви отримаєте биті посилання виду https://newshop.uaindex.php.

Другий: якщо папку адмінки перейменовано (а для безпеки її варто перейменовувати), у HTTP_SERVER адмінського конфіга має стояти саме нова назва папки, не admin.

Симптом забутого admin/config.php упізнається одразу: вітрина працює на новому домені, а спроба зайти в адмінку закінчується редиректом на старий або нескінченним колом на сторінці логіна. Стара адреса в кореневому config.phpпроявляється інакше: сторінка відкривається, але стилі, скрипти й зображення движок генерує зі старим доменом. Далі два варіанти. Якщо старий домен уже мертвий, ресурси просто не вантажаться і в консолі сипле ERR_NAME_NOT_RESOLVED. Якщо він ще живий і відповідає через http, браузер ріже такі запити як mixed content, і магазин виглядає голим HTML без оформлення.


Порядок дій при переїзді

  1. Відредагуйте обидва config.php: замініть стару адресу на нову в усіх константах, з протоколом і слешем у кінці.
  2. Очистіть кеш: видаліть вміст system/storage/cache/ (сам каталог лишіть).
  3. Перевірте .htaccess у корені: якщо там були правила з жорстко прописаним старим доменом (редиректи, RewriteCond по HTTP_HOST), оновіть їх.

На цьому етапі магазин уже відкривається за новою адресою. Але зупинятися рано, бо стара адреса нікуди не зникла: вона сидить у контенті.


Залишки старої адреси в базі

Константи в конфігах відповідають лише за генерацію посилань самим движком. Усе, що вводили руками, лишилося як було: абсолютні посилання на картинки в описах товарів, лінки в статтях, банери, налаштування модулів. Класична картина після переїзду: товар відкривається на новому домені, а зображення в описі тягнуться зі старого. Якщо той уже вимкнений — биті картинки, якщо ще працює через http — той самий mixed content, тільки цього разу з контенту, а не з конфігів.


Пройдіться по таблицях з описами:

UPDATE oc_product_description
SET description = REPLACE(description, 'https://oldshop.ua', 'https://newshop.ua');

UPDATE oc_category_description
SET description = REPLACE(description, 'https://oldshop.ua', 'https://newshop.ua');

UPDATE oc_information_description
SET description = REPLACE(description, 'https://oldshop.ua', 'https://newshop.ua');

Перед будь-яким масовим UPDATE зробіть дамп бази. Хоч ріжте, але без бекапа такі запити ганяти не можна: один неточний REPLACE, і відкочуватися буде нікуди.


301-редиректи та Search Console

Технічно магазин переїхав, але для Google це поки два різні сайти з однаковим контентом. Якщо старий домен ще у вашій власності, налаштуйте з нього постійний редирект на новий, посторінково, а не все на головну.


Для NGINX це окремий server-блок:

server {
    listen 443 ssl;
    server_name oldshop.ua www.oldshop.ua;
    return 301 https://newshop.ua$request_uri;
}


Для Apache — правило в .htaccess старого сайту:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?oldshop\.ua$ [NC]
RewriteRule ^(.*)$ https://newshop.ua/$1 [R=301,L]


Далі йдіть у Search Console: додайте новий домен як окремий ресурс, підтвердіть його і скористайтеся інструментом «Зміна адреси» на старому ресурсі. Це прискорює переклеювання позицій, хоча повний переїзд в очах пошуковика все одно розтягнеться на тижні. Не забудьте оновити sitemap (у стандартному OpenCart він генерується за адресою index.php?route=extension/feed/google_sitemap уже з новим доменом, але посилання на нього в robots.txt і в самій Search Console треба замінити руками) і перевірити robots.txt, якщо там був прописаний абсолютний шлях до карти сайту.

І тримайте редирект зі старого домену живим щонайменше рік. Скидати його через місяць, «бо вже все переїхало», означає подарувати конкурентам вагу всіх зовнішніх посилань, які роками вели на стару адресу.


Чек-лист після зміни адреси

  •  Нова адреса зі слешем у кінці в config.php і admin/config.php (усі константи, включно з HTTP_CATALOG)
  •  Кеш system/storage/cache/ очищено
  •  Адмінка відкривається і не редиректить на стару адресу
  •  Стилі, скрипти й зображення вантажаться з нового домену (перевірка в консолі браузера)
  •  Описи товарів, категорій та статей перевірено на абсолютні посилання, база забекаплена перед REPLACE
  •  301-редирект зі старого домену працює посторінково
  •  Search Console: новий ресурс додано, «Зміну адреси» запущено, sitemap оновлено
  •  Головна, категорія і картка товару відкриті вручну: без битих картинок і помилок mixed content у консолі

Рекомендовані товари

від Exploits

Redirector 301 - супер простий та швидкий модуль для створення 301-х редиректів

Редиректор 301 – це модуль для створення редиректів в Opencart за пару секунд! Можна робити редиректи з точного входження посилання, на початок, на кінець або на початок і кінець посилання - дуже зручно! В модулі є імпорт, експорт, видалення, тестування редіректів

1
продажів
447 ₴
OCTemplates

OCTemplates

OCTemplates — команда розробників та дизайнерів з України з досвідом у веброзробці з 2002 року. З 2015 року спеціалізуються на шаблонах та модулях для OpenCart: швидких, SEO-оптимізованих і готових до роботи в реальних умовах e-commerce. Продукти OCTemplates використовують тисячі інтернет-магазинів у Європі, Азії, Північній Америці та Австралії. Кожен покупець отримує не лише готове рішення, а й технічну підтримку та консультації з налаштування магазину.

статей
11
переглядів
1,931
вподобання
3
підписників
0

Схожі статті

Коментарі (0)

Відповідь для

Увійдіть, щоб залишити коментар

Увійти

Коментарів поки немає

Будьте першим, хто залишить коментар до цієї статті!

Ми використовуємо cookies

Ми використовуємо cookies та схожі технології для покращення вашого досвіду, аналізу трафіку та показу персоналізованої реклами. Детальніше — у нашій Політиці cookies.