Existem várias extensões que fazem exatamente isso. No entanto, eles ainda são apenas soluções temporárias, pois a maintenance.flag
funcionalidade ainda está lá. Para removê-lo, você deve editar manualmente o arquivo 'index.php', que por sua vez pode causar problemas com as atualizações.
if (file_exists($maintenanceFile)) {
include_once dirname(__FILE__) . '/errors/503.php';
exit;
}
É assim que a funcionalidade 'maintenance.flag' é implementada no 'index.php'. No entanto, como você precisa editar 'index.php', você também pode fazer algo mais elaborado, como:
if (file_exists($maintenanceFile) && strpos($_SERVER['REQUEST_URI'], '/admin/') === false) {
include_once dirname(__FILE__) . '/errors/503.php';
exit;
}
Observe que o código acima é um hack rápido e sujo. Você pode desenvolvê-lo ainda mais, pois apenas verifico se '/ admin /' existe no URL.