Як обмежити доступ до сайту на Мадженто (режим обслуговування)
Іноді бувають моменти, коли потрібно внести зміни в код на сайті Мадженто, який вже функціонує в мережі Інтернет. Іншими словами, перевести його в режим технічного обслуговування, поки ви редагуєте функціонал сайту. І тут важливо, щоб клієнтам вашого інтернет-магазину показувалося інформаційне повідомлення про режим обслуговування, а у вас був повний доступ до функцій сайту для його тестування.
Самим ідеальним для цього рішенням буде обмеження доступу до сайту по 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
.
Сподіваємося, що сьогоднішній урок був вам корисний!
Останні пости
Демокріт
Ми потребуємо не стільки допомоги друзів, а більше тієї впевненості, що ми її отримаємо Демокріт… Читати далі
Майк Тайсон
Коли мені важко, я завжди нагадую собі про те, що якщо я здамся — краще… Читати далі
25 корисних порад та рішень jQuery, які ви повинні знати
jQuery – це швидка і досить невелика бібліотека JavaScript. Вона спрощує створення інтерактивних та приголомшливих… Читати далі
Йоганн Вольфганг фон Гете
Кожен чує тільки те, що він розуміє Йоганн Вольфганг фон Гете Читати далі
Сайт для перукарні Teti Bond
Опис проекту: Розробка офіційного сайту для перукарні Teti Bond в місті Житомир. Перукарня орієнтована… Читати далі
Як повністю і без сліду видалити плагін у WordPress
Плагіни є невід'ємною частиною функціонування WordPress, адже за їх допомогою можна досягти практично необмеженої розширюваності… Читати далі