¿Cómo habilito el indicador de mantenimiento de la versión 1.9 con acceso de administrador?
14
Como no veo el modo de mantenimiento en la interfaz de usuario de la versión 1.9 System > Configuration, solté un maintenance.flagarchivo en la raíz del sitio. Sin embargo, eso también bloquea el acceso a mi panel de administración. ¿Alguien puede decirme cómo mantener el modo de mantenimiento del sitio con acceso de administrador?
Hay un puñado de extensiones que hacen exactamente eso. Sin embargo, siguen siendo solo soluciones temporales, ya que la maintenance.flagfuncionalidad sigue ahí. Para eliminarlo, debe editar manualmente el archivo 'index.php', que a su vez puede causar problemas con las actualizaciones.
Así es como se implementa la funcionalidad 'maintenance.flag' en 'index.php'. Sin embargo, dado que necesita editar 'index.php', también podría hacer algo más elaborado, como:
antes de hacer esto, simplemente verifique cuál es request_uri y modifique la condición en consecuencia.
Kalyan Chakravarthi V
3
Y si está detrás de un equilibrador de carga que pasa la IP del cliente en el encabezado HTTP_X_FORWARDED_FOR, asegúrese de tenerlo en cuenta de esta manera:
// 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;}}
Muy útil para aquellos que usan un balanceador de carga AWS Ec2
asherrard
1
Puede configurar su propia página de mantenimiento y utilizar ErrorDocument 503 para enviar la página de mantenimiento. Excluya su dirección IP a través de RewriteCond para que pueda acceder a la página de todos modos y no ser redirigido:
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]
Tenga en cuenta que también puede ser necesario incluir en la lista blanca servicios adicionales como pasarelas de pago para realizar pruebas.
Y si está detrás de un equilibrador de carga que pasa la IP del cliente en el encabezado HTTP_X_FORWARDED_FOR, asegúrese de tenerlo en cuenta de esta manera:
fuente
Puede configurar su propia página de mantenimiento y utilizar ErrorDocument 503 para enviar la página de mantenimiento. Excluya su dirección IP a través de RewriteCond para que pueda acceder a la página de todos modos y no ser redirigido:
Tenga en cuenta que también puede ser necesario incluir en la lista blanca servicios adicionales como pasarelas de pago para realizar pruebas.
fuente