Как ограничить доступ к сайту на Мадженто (режим обслуживания)
Иногда бывают моменты, когда нужно внести изменения в код на сайте Мадженто, который уже функционирует в сети Интернет. Другими словами, перевести его в режим технического обслуживания, пока вы редактируете функционал сайта. И здесь важно, чтобы клиентам вашего интернет-магазина показывалось информационное сообщение о режиме обслуживания, а у вас был полный доступ к функциям сайта для его тестирования.
Самым идеальным для этого решением будет ограничение доступа к сайту по 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
.
Надеемся, что сегодняшний урок был вам полезен!
Последние посты
Самые красивые и впечатляющие мосты со всего мира (ТОП-10)
Мост — это нечто большее, чем просто сооружение, соединяющее два берега. Для того, чтобы появился… Читать далее
Соломон
Жизнь нас учит, что свою пару мы познаем, когда разводимся, своих братьев мы познаем, когда… Читать далее
Чак Паланик
Кто может — тот делает. Кто не может — тот критикует Чак Паланик Читать далее
Ричард Бах
Ни одно желание не дается тебе отдельно от силы, позволяющей его осуществить. Хотя, возможно, для… Читать далее
Стивен Кинг
Жизнь – это непрерывный опыт, и даже самые плохие моменты занимают свое место в пазле… Читать далее
неизвестный автор
Люди, которые любят одиночество, дорого заплатили за дружбу с кем-то... неизвестный автор Читать далее