domingo, marzo 08, 2009

Haciendo desaparecer una web



Supongamos que tenemos una pagina web hace rato, y queremos hacerla desaparecer: que cuando alguien entre, ya sea directamente o por medio de un enlace, nos rebote a otra pagina mostrando algún mensaje:
"Este sitio web se encuentra en mantenimiento permanente, por favor no vuelva nunca más".
Si estás usando Apache y tenés la posibilidad de editar un archivo .htaccess, hay dos formas de hacerlo. La primera es usar RedirectMatch creando un archivo llamado .htaccess en el directorio raiz del sitio web:
RedirectMatch (.*) http://www.otrositio.com/mantenimiento.html
RedirectMatch ^$ http://www.otrositio.com/mantenimiento.html
Es muy importante tener en cuenta que esas dos reglas son catch-all. Si la redireccion se hace al mismo sitio entonces tendrás un bucle infinito muy feo, y tu hosting se va a enojar mucho.

Una buena opción para evitar eso sería crear un subdominio, por ejemplo "mantenimiento.tusitio.com" en donde ahi no existan esas reglas y aparezca el mensaje.

La segunda alternativa, tambien dentro del archivo .htaccess, es usar mod_rewrite de Apache:
<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule (.*) index.php [QSA,L]

</IfModule>
En este caso podemos tener un mejor control de cómo hacer la redireccion, ya que de acuerdo a las reglas anteriores el modulo de Rewrite la va a hacer solo cuando el archivo que se pida no exista.

De esta forma se puede mover el contenido de todo el sitio a una carpeta con otro nombre, y poner una portada que muestre un mensaje adecuado.

No hay comentarios.: