Archivo de la etiqueta: .htaccess

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.