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.

Acerca de SKaRCHa

Soy Antonio Pérez y esta es mi página personal. Aquí podrás encontrar de todo un poco. Hablo de lo que me gusta, de lo que me pasa o de lo que encuentro interesante... ;)
Esta entrada fue publicada en Blogs, Internet, Trucos y etiquetada , , , , . Guarda el enlace permanente.

9 respuestas a Como poner tu web o blog en modo mantenimiento

  1. Jesús dijo:

    Estupenda información. Un saludo.

  2. Enric dijo:

    Está muy bien explicado. Pero lástima que en algunos hostings no te dejen cambiar el .htaccess

  3. SKaRCHa dijo:

    Muchas gracias, me alegro de que os guste.

    En Webhostingbuzz sí que te dejan poner tu propio .htaccess, así que ya sabéis… ;)

  4. Óscar dijo:

    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 ;)

  5. Norberto Replay dijo:

    Oscar, haciendo lo que tú dices, consigues que quien entre en la portada de tu blog vea la página de mantenimiento.

    Pero si alguien llega a tu blog directamente desde una búsqueda en google o entrando directo a algún post, va a entrar en

    http://ladireccionquesea/index.php?p=xxx

    o en

    http://ladireccionquesea/nombre-del-post

    Y eso no lo va a capturar tu sistema. El de Antonio sí que lo capturaría.

  6. Ronald Poi dijo:

    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!

  7. SKaRCHa dijo:

    Ó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… ;)

  8. Óscar dijo:

    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 :)

  9. Jordi dijo:

    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?

Los comentarios están cerrados.