Як обмежити доступ до сайту на Мадженто (режим обслуговування)
Іноді бувають моменти, коли потрібно внести зміни в код на сайті Мадженто, який вже функціонує в мережі Інтернет. Іншими словами, перевести його в режим технічного обслуговування, поки ви редагуєте функціонал сайту. І тут важливо, щоб клієнтам вашого інтернет-магазину показувалося інформаційне повідомлення про режим обслуговування, а у вас був повний доступ до функцій сайту для його тестування.
Самим ідеальним для цього рішенням буде обмеження доступу до сайту по IP відвідувача. Починаючи з версії Мадженто 1.4 стала доступною відповідна функція, яка дозволяє досить просто перевести сайт в режим технічного обслуговування. Для цього достатньо додати порожній файл maintenance.flag
в корінь сайту. Система сама робить подібний трюк, коли, наприклад, ви оновлюєте версію двигуна з адмінки. Поки йде оновлення, всі відвідувачі сайту бачать сторінку з повідомленням про режим технічного обслуговування. Після поновлення система видаляє цей файл і сайт функціонує в звичайному режимі. Єдиним недоліком тут є те, що і вам встановлюється обмеження доступу до сайту. Сьогодні ми розглянемо те, як можна обійти таке обмеження.
Щоб перевести інтернет-магазин на Magento в режим технічного обслуговування, створіть порожній файл maintenance.flag
в корені вашого сайту. Після цього при відкритті будь-якої сторінки сайту ви (і всі інші відвідувачі) будете бачити щось подібне:
Щоб відкрити собі доступ до функціоналу сайту, вам потрібно буде внести невеликі правки в файл index.php
в кореневій папці Magento. Нам потрібно додати список дозволених IP-адрес, для яких буде знято обмеження доступу. Для цього відкрийте файл index.php
і додайте даний код приблизно з 50-го рядка:
$ip = $_SERVER['REMOTE_ADDR']; $allowedIp = array('1.1.1.1','2.2.2.2');
У масиві $allowedIp = array('1.1.1.1','2.2.2.2');
вам потрібно вказати список тих IP, з яких доступ буде дозволений.
Після цього змініть рядок в цьому ж файлі з
if (file_exists($maintenanceFile)) {
на
if (file_exists($maintenanceFile) && !in_array($ip, $allowedIp)) {
Після правок частина файлу index.php
повинна виглядати так:
… $mageFilename = MAGENTO_ROOT . '/app/Mage.php'; $maintenanceFile = 'maintenance.flag'; $ip = $_SERVER['REMOTE_ADDR']; $allowedIp = array('1.1.1.1','2.2.2.2'); if (!file_exists($mageFilename)) { if (is_dir('downloader')) { header("Location: downloader"); } else { echo $mageFilename." was not found"; } exit; } if (file_exists($maintenanceFile) && !in_array($ip, $allowedIp)) { include_once dirname(__FILE__) . '/errors/503.php'; exit; } …
Тепер у вас буде повний доступ до сайту, а всі інші відвідувачі будуть бачити сторінку з повідомленням про проведення технічних робіт на сайті. До речі, якщо ви хочете змінити текст даного повідомлення, для цього достатньо буде відредагувати шаблон 503.phtml в папці errors/default
.
Сподіваємося, що сьогоднішній урок був вам корисний!
Останні пости
202ЗСУ
SebWeo щиро вітає усіх із Новим роком! Бажаємо особистих перемог, а головне, найбажанішої — швидкої… Читати далі
Який подарунок можна вручити батькові на День захисника України?
У кожної української сім'ї є свої певні традиції та улюблені свята, особливо усі ми любимо… Читати далі
Демокріт
Ми потребуємо не стільки допомоги друзів, а більше тієї впевненості, що ми її отримаємо Демокріт… Читати далі
Майк Тайсон
Коли мені важко, я завжди нагадую собі про те, що якщо я здамся — краще… Читати далі
25 корисних порад та рішень jQuery, які ви повинні знати
jQuery – це швидка і досить невелика бібліотека JavaScript. Вона спрощує створення інтерактивних та приголомшливих… Читати далі
Йоганн Вольфганг фон Гете
Кожен чує тільки те, що він розуміє Йоганн Вольфганг фон Гете Читати далі