Como poner tu web o blog en modo mantenimiento

Seguro que os ha surgido la necesidad de poner vuestro blog o página web en modo mantenimiento. La idea es poder tocar los ficheros del sitio sin que los usuarios puedan acceder a ninguna parte del sitio hasta que todo esté correcto.

Yo hasta hace poco símplemente ponía un index.html que decía eso de: «En mantenimiento, perdonen las molestias», de forma que todo el que intentaba entrar en la página principal del sitio se encontraba con dicho mensaje. Eso está bien para la portada, pero ¿y el resto de páginas?, evidentemente el resto seguirá accesible si ponemos la url completa en el navegador, por ejemplo: http://misitio.com/otrapagina.html

Para solucionar este problema (en servidores que usen Apache) vamos a usar .htaccess, que es un fichero de texto que contiene una serie de directivas de Apache para configurar cómo se comportará el servidor web, permitiéndonos a los usuarios un mayor control sobre él. Buscando por Google se puede encontrar mucha información sobre .htaccess y qué podemos hacer con él. Hay incluso generadores de .htaccess.

Lo primero que vamos a hacer es crear un programa en PHP que se llame por ejemplo mantenimiento.php y cuyo contenido será el siguiente:


<?php
header("HTTP/1.1 503 Service Unavailable");
echo "En mantenimiento, perdonen las molestias";
?>

Eso lo que hace es mandar una cabecera HTTP con el código de respuesta 503 al navegador diciéndole que el servicio no está disponible actualmente, y además muestra el texto: «En mantenimiento, perdonen las molestias».

A continuación creamos un fichero .htaccess_mant con el siguiente contenido:


Options -Indexes
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteRule !mantenimiento.php /mantenimiento.php [L]
</ifmodule>

La primera línea le dice que no muestre el contenido de los directorios que no contengan un index.html o index.php. Esto es opcional, pero yo lo dejaría como medida de seguridad.

El resto de código lo que hace es decirle al Apache que a cualquier petición que hagan los visitantes, responda con el mantenimiento.php.

Ahora lo único que quedaría por hacer sería enviar el fichero mantenimiento.php al servidor web y sustituir el fichero .htaccess que tengamos en nuestro sitio por .htaccess_mant, renombrándolo a .htaccess cuando quereamos poner el sitio en modo mantenimiento. La idea es tener dos ficheros .htaccess, uno para cuando el sitio está funcionando de forma correcta, y otro para cuando queramos ponerlo en mantenimiento.

Eso es todo, espero no haberme liado mucho con la explicación y que le sirva a alguien de ayuda.

9 comentarios en “Como poner tu web o blog en modo mantenimiento

  1. Óscar

    Te voy a decir una cosa, yo en Siteground.com no he necesitado modificar .htaccess para hacer eso. Simplemente, si pones un index.html en lugar del index.php de tu CMS preferido, lo coge.

    Claro que, otra cosa es que «probablemente» el .htaccess ya se encuentre modificado… le echaré un ojo y te lo diré. Pero desde luego, la explicación que has dado, nene, es de libro de texto: magnífica ;)

  2. Ronald Poi

    Acabas de salvarme de una vergüenza online… lo necesité urgente y para mis suerte que te tengo en mis feeds. Gracias por hacerlo tan simple!

  3. SKaRCHa Autor

    Óscar, como dice Norberto (alias Davidp), tu solución es precisamente la que comento al principio del post. No es una forma segura de poner tu web en mantenimiento.

    Ronald, me alegro de que esta entrada te haya servido de ayuda… ;)

  4. Óscar

    Pues sí, razón no os falta… a quienes usáis wordpress. Pero a mí en Nucleus sí me capta cualquier página. Tengo que investigar esto porque me juego lo que queráis a que hay algo que se me ha escapado y fijo que tenéis toda la razón :)

  5. Jordi

    Varias preguntas Skarcha, te agradeceria que me las respondieras
    *Yo lo que quiero es poner un index.html/php pero en vez de texto quisiera poner una imagen, simple, sin codigo, como un fondo, que pusiera «estamos en mantenimiento» (La imagen se hacerla en el PH) ¿Que codigo deberia poner? (Apenas sé php, sorry)

    *Entiendo que así prohíbas acceder a la web a cualquier persona, PERO ENTONCES COMO MIRAMOS NOSOTROS LA WEB?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.