Как ограничить доступ к сайту на Мадженто (режим обслуживания)
Иногда бывают моменты, когда нужно внести изменения в код на сайте Мадженто, который уже функционирует в сети Интернет. Другими словами, перевести его в режим технического обслуживания, пока вы редактируете функционал сайта. И здесь важно, чтобы клиентам вашего интернет-магазина показывалось информационное сообщение о режиме обслуживания, а у вас был полный доступ к функциям сайта для его тестирования.
Самым идеальным для этого решением будет ограничение доступа к сайту по 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. Она упрощает создание интерактивных и… Читать далее
Иоганн Вольфганг фон Гете
Каждый слышит только то, что он понимает Иоганн Вольфганг фон Гете Читать далее