Como habilito o sinalizador de manutenção da versão 1.9 com acesso de administrador
14
Como não vejo o Modo de manutenção na interface do usuário da versão 1.9 System > Configuration, soltei um maintenance.flagarquivo na raiz do site. No entanto, isso também bloqueia o acesso ao meu painel de administração. Alguém pode me dizer como manter o modo de manutenção do site com acesso de administrador?
Existem várias extensões que fazem exatamente isso. No entanto, eles ainda são apenas soluções temporárias, pois a maintenance.flagfuncionalidade 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.
É 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:
Antes de fazer isso, verifique qual é o request_uri e modifique a condição de acordo.
Kalyan Chakravarthi V
3
E se você está atrás de um balanceador de carga que está passando o IP do cliente no cabeçalho HTTP_X_FORWARDED_FOR, certifique-se de prestar contas da seguinte maneira:
// account for load balancer that passes client IPif(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];}if(empty($ip)){
$ip = $_SERVER['REMOTE_ADDR'];}// whitelist your ips
$allowed = array();
$allowed[]='WHITELIST.IP.ADDRESS.#1';
$allowed[]='WHITELIST.IP.ADDRESS.#2';if(file_exists($maintenanceFile)){if(file_exists($maintenanceFile)&&!in_array($ip, $allowed)){
include_once dirname(__FILE__).'/errors/503.php';exit;}}
Altamente útil para aqueles que usam um balanceador de carga AWS
Ec2
1
Você pode configurar sua própria página de manutenção e usar o ErrorDocument 503 para enviar a página de manutenção. Exclua seu endereço IP via RewriteCond para que você possa acessar a página de qualquer maneira e não seja redirecionado:
RewriteEngineOnErrorDocument503/errors/503.phpRewriteCond%{REMOTE_ADDR}!^4.3.2.1[NC]#your IPRewriteCond%{REMOTE_ADDR}!^4.3.2.2[NC]#other IP if neededRewriteCond%{REMOTE_ADDR}!^127.0.0.1[NC]#localhost maybe needed depending on server setupRewriteCond%{REQUEST_URI}!^/errors/503.phpRewriteCond%{REQUEST_URI}!^/media/RewriteCond%{REQUEST_URI}!^/images/RewriteCond%{REQUEST_URI}!^/css/RewriteCond%{REQUEST_URI}!^/js/RewriteCond%{REQUEST_URI}!^/skin/RewriteCond%{REQUEST_URI}!^/index.php
RewriteCond%{REQUEST_URI}!^/admin #your admin pathRewriteCond%{REQUEST_URI}!^/admin/RewriteRule^(.*) http://www.yourwebsite.com/errors/503.php [L,R=503]
Observe que também pode ser necessário adicionar serviços adicionais à lista de permissões, como gateways de pagamento para testes.
E se você está atrás de um balanceador de carga que está passando o IP do cliente no cabeçalho HTTP_X_FORWARDED_FOR, certifique-se de prestar contas da seguinte maneira:
fonte
Você pode configurar sua própria página de manutenção e usar o ErrorDocument 503 para enviar a página de manutenção. Exclua seu endereço IP via RewriteCond para que você possa acessar a página de qualquer maneira e não seja redirecionado:
Observe que também pode ser necessário adicionar serviços adicionais à lista de permissões, como gateways de pagamento para testes.
fonte