Коварная война россии против Украины. Ориентировочные потери врага
(по состоянию на 22.09.2022)
55510
солдат
253
самолетов
218
вертолетов
2236
танков
4776
ББМ
1341
артиллерия
169
ПВО
318
РСЗО
3630
машин
15
корабли и катера
Как ограничить доступ к сайту на Мадженто (режим обслуживания)

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

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

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

Надеемся, что сегодняшний урок был вам полезен!

 

 

2 комментария для «Как ограничить доступ к сайту на Мадженто (режим обслуживания)»

  1. Константин

    Спасибо за помощь! То, что нужно. Работает отлично.

Добавить комментарий

Ваш адрес email не будет опубликован.