Як обмежити доступ до сайту на Мадженто (режим обслуговування)

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

Самим ідеальним для цього рішенням буде обмеження доступу до сайту по 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.

Сподіваємося, що сьогоднішній урок був вам корисний!

 

Recent Posts

Як створити заливку тексту градієнтом з допомогою CSS

Веб-дизайнери та розробники завжди шукають щось нове та креативне, щоб зробити свій сайт унікальним та…

2 дні ago

Що таке помилка 401, та як її виправити (у WordPress)?

Уявіть ситуацію, коли ви намагаєтеся оновити свій веб-сайт, але з якоїсь причини у вас немає…

3 дні ago

Яка різниця між хостингом домену та веб-хостингом?

Кожен сайт потребує і хорошого веб-хостингу, і хорошого хостингу домену. Але нерідко ці два поняття…

4 дні ago

Чи є виграш від локального розміщення (self-hosting) шрифтів Google?

Коли ви працюєте над своїм сайтом і все глибше поринаєте у технології, - дуже багато…

5 днів ago

Чому ноутбук гріється і гальмує – коли потрібний ремонт ноутбука

Сильне нагрівання – одна з найпоширеніших проблем, з якою стикаються власники ноутбуків. Навіть пристрої з…

2 тижні ago

Роберт Гайнлайн

Ніколи не вбачайте злого наміру в тому, що цілком можна пояснити дурістю Роберт Гайнлайн (Бритва…

2 тижні ago