Статті та новини
Як змінити адресу (URL) адмінки в OpenCart - просто і безпечно

Хочете прибрати стандартний /admin/ в OpenCart і зменшити сміттєві спроби входу? Розповімо простими словами про два способи змінити адресу адмінки – перейменування папки або «віртуальний» URL через rewrite, з готовими правилами для Apache та Nginx.

 
 
 
 
 
Найпопулярніші шаблони та доповнення за липень 2025 року

Найпопулярніші шаблони та доповнення за липень 2025 року: Мікророзмітка, ChatGPT, Відео на сервері, шаблон Mango

 
 
 
 
 
Підбірка нових модулів для OpenCart за липень 2025 року

Новинки липня 2025 року: Запам’ятати мене, Швидкий вхід через соцмережі, Розумні рекомендації

 
 
 
 
 
Помилка після встановлення модуля Simple в OpenCart 3: Twig_Loader_Array не знайдено

Модуль Simple - один із найпопулярніших модулів для спрощення оформлення замовлень і реєстрації в OpenCart 3. Проте після його встановлення може виникнути критична помилка, пов’язана зі застарілою модифікацією шаблонізатора Twig.

 
 
 
 
 

Як змінити адресу (URL) адмінки в OpenCart - просто і безпечно

 
Як змінити адресу (URL) адмінки в OpenCart - просто і безпечно

За замовчуванням адреса адміністративної панелі OpenCart – /admin/. Її добре знають зловмисники та різні боти. Змінити або приховати це посилання – простий спосіб зменшити сміття в логах та спроби брутфорсу. Нижче – два зрозумілих варіанти для OpenCart 1.5 / 2.x / 3.x (включно з ocStore 3.0.3.9): перейменувати папку або налаштувати «віртуальний» URL через правила веб-сервера.

Перед початком

  • Зробіть резервну копію файлів і бази даних.
  • Визначте абсолютний шлях до сайту (наприклад, /var/www/site/) та домен (https://example.com).
  • Якщо використовуєте кеш/OPcache – заплануйте очищення або перезапуск.
  • Для OpenCart і ocStore 3 пам’ятайте про DIR_STORAGE (часто винесений за корінь сайту).

Спосіб 1. Перейменувати папку admin

  1. Перейменуйте каталог admin – наприклад, у secret-admin.
  2. Оновіть admin/config.php, вказавши новий URL і коректні шляхи.

OpenCart 3 / ocStore 3

// HTTP
define('HTTP_SERVER', 'https://example.com/secret-admin/');

// HTTPS
define('HTTPS\_SERVER', '[https://example.com/secret-admin/](https://example.com/secret-admin/)');

// DIR
define('DIR\_APPLICATION', '/var/www/site/secret-admin/');
define('DIR\_SYSTEM', '/var/www/site/system/');
define('DIR\_IMAGE', '/var/www/site/image/');
define('DIR\_STORAGE', '/var/www/site/system/storage/'); // або зовнішній шлях
define('DIR\_CATALOG', '/var/www/site/catalog/');

define('DIR\_LANGUAGE', DIR\_APPLICATION . 'language/');
define('DIR\_TEMPLATE', DIR\_APPLICATION . 'view/template/');
define('DIR\_CONFIG', DIR\_SYSTEM . 'config/');
define('DIR\_CACHE', DIR\_STORAGE . 'cache/');
define('DIR\_DOWNLOAD', DIR\_STORAGE . 'download/');
define('DIR\_LOGS', DIR\_STORAGE . 'logs/');
define('DIR\_MODIFICATION', DIR\_STORAGE . 'modification/');
define('DIR\_SESSION', DIR\_STORAGE . 'session/');
define('DIR\_UPLOAD', DIR\_STORAGE . 'upload/');

OpenCart 2.0–2.3

// HTTP/HTTPS
define('HTTP_SERVER', 'https://example.com/secret-admin/');
define('HTTPS_SERVER', 'https://example.com/secret-admin/');

// DIR
define('DIR\_APPLICATION', '/var/www/site/secret-admin/');
define('DIR\_SYSTEM', '/var/www/site/system/');
define('DIR\_IMAGE', '/var/www/site/image/');
define('DIR\_CATALOG', '/var/www/site/catalog/');

define('DIR\_LANGUAGE', DIR\_APPLICATION . 'language/');
define('DIR\_TEMPLATE', DIR\_APPLICATION . 'view/template/');
define('DIR\_CONFIG', DIR\_SYSTEM . 'config/');
// Інші DIR\_\* — залежно від вашої збірки (часто всередині system/storage)

OpenCart 1.5.x

// HTTP
define('HTTP_SERVER', 'https://example.com/secret-admin/');
// На фронт:
define('HTTP_CATALOG', 'https://example.com/');

// DIR
define('DIR\_APPLICATION', '/var/www/site/secret-admin/');
define('DIR\_SYSTEM', '/var/www/site/system/');
define('DIR\_IMAGE', '/var/www/site/image/');
define('DIR\_CATALOG', '/var/www/site/catalog/');

Після змін очистіть кеші (у 2.x/3.x: «Розширення – Модифікатори – Оновити»; якщо адмінка недоступна – видаліть вміст system/storage/cache і system/storage/modification вручну) та перевірте вхід за новою адресою.

Плюси: усе працює «з коробки», OpenCart/ocStore генерує правильні посилання.
Мінуси: потрібно пам’ятати нову назву папки і акуратно прописати шляхи.


Спосіб 2. «Віртуальний» URL через Rewrite (папку не чіпаємо)

Ідея проста: папка залишається /admin/, але зовні ви заходите за /cp/. Для цього змінюємо видимий HTTP_SERVER і додаємо правила веб-сервера.

  1. Залиште каталог admin як є.
  2. У admin/config.php вкажіть «видимий» URL:
// Видимі адреси
define('HTTP_SERVER', 'https://example.com/cp/');
define('HTTPS_SERVER', 'https://example.com/cp/');

// Фізичні шляхи — на реальну папку admin
define('DIR\_APPLICATION', '/var/www/site/admin/');

Apache (.htaccess у корені сайту)

RewriteEngine On

# Віддаємо /cp/ із фізичного /admin/

RewriteRule ^cp(/.\*)?\$ admin\$1 \[L]

# (Необов'язково) Блокуємо прямий /admin/

RewriteRule ^admin(/.\*)?\$ - \[R=404,L]

Nginx (фрагмент у server { ... })

# Видимий URL
location ^~ /cp/ {
    rewrite ^/cp/(.*)$ /admin/$1 last;
}

# (Необов'язково) Блокуємо прямий /admin/

location ^\~ /admin/ {
return 404;
}

Перезапустіть веб-сервер, очистіть кеші OpenCart – і заходьте за /cp/.

Плюси: не потрібно змінювати файлову структуру.
Мінуси: важливо правильно прописати правила, щоб не зламати існуючі редиректи.


Додаткові способи підвищення безпеки

  • Basic Auth на адмінку – додатковий пароль поверх OpenCart. Можна зробити за допомогою безкоштовного модуля Basic HTTP авторизація
  • Whitelist за IP (доступ тільки з ваших адрес).

Додайте на початок файлу /admin/.htaccess рядки:

Order deny,allow
deny from all
Allow from 1.1.1.1

де 1.1.1.1 – ваша IP-адреса.

  • 2FA (двофакторна аутентифікація) для адміністраторів.
  • Змініть стандартний логін admin та вимкніть зайві облікові записи.
  • Captcha для адмінки.
  • Замість зміни адреси можна використовувати додатковий ключ для входу. Така можливість є в модулі OCCleaner – очищення та оптимізація.

Як уникнути частих помилок

  • Немає завершального слеша у HTTP_SERVER/HTTPS_SERVER: має бути /cp/, а не /cp.
  • Невірні шляхи DIR_*: перевірте реальний шлях до сайту.
  • Кеш не очищено: інтерфейс продовжує працювати зі старою версією.
  • Конфлікт правил у .htaccess/Nginx: порядок RewriteRule та location важливий.
  • Змішаний контент: при HTTPS вказано http:// – отримаєте зайві редиректи та попередження.

Як відкотити, якщо щось пішло не так

  • Спосіб 1: поверніть папці попередню назву та відновіть admin/config.php.
  • Спосіб 2: тимчасово приберіть правила Rewrite/блок location та поверніть HTTP_SERVER на /admin/.
  • Очистіть кеші/модифікації, за потреби перезапустіть PHP-FPM/веб-сервер.

Рекомендуем посмотреть
Рекомендуем прочитать
 
 


Ещё никто не оставил комментариев к записи.