Páginas 404 personalizadas y redirigir directorio con .htaccess

Debido al problema insalvable, he estado buena parte de esta noche, haciendo mis averiguaciones para ver si podía hacer la vida mas sencilla a los usuarios que visitan el foro habitualmente.

Muchos tendrán apuntados directamente la dirección antigua en sus navegadores, o bien en Internet tanto buscadores como otras páginas web, tendrán la ubicación antigua.

Pensaba que con una página personalizada 404 (este error quiere decir: documento no encontrado o inexistente) que mostrase el enlace visitado erróneo y a su vez mostrase el nuevo enlace de forma pulsable, podría ser una forma elegante de ayudar al usuario. Pero al final he conseguido una solución directa sin tanto problema, y mucho mas optimizada.

Lo explicaré por partes para aquellos a los que les interese:

Paginas 404 personalizadas

Atención: no todos los alojamientos permiten personalizar esto, normalmente los de pago si.

Podemos cambiar la página directamente en nuestro servidor o alojamiento, pero a lo mejor queremos utilizar páginas personalizadas para según que partes de cada web.

La forma sencilla es poner en el directorio en cuestión una página error404.html o con cualquier otro nombre, y después un documento .htaccess (esto solo vale para servidores Apache), que redireccione el fallos 404 a la página recién creada.

Si estáis en Windows, editáis un documento llamado htaccess.txt (tiene que llamarse así si estáis en Windows), y dentro ponéis esto:

ErrorDocument 404 http://www.vuestrositio.com/vuestro_directorio/error404.html

Cuando subamos este fichero a nuestro alojamiento y directorio, después debemos renombrarlo de htaccess.txt a .htaccess

La página error404.html puede ser personalizada como queramos, poniendo todo lo que necesitemos, logotipos, etc. Pero el fichero html tiene que medir mas de 512 bytes, o sino algunos navegares interpretaran que es una página por defecto y pondrán la suya propia.

Una buena práctica es:

  • Poner cosas sencillas, claras y útiles. Por ejemplo un aviso sencillo o una imagen descriptiva (preferiblemente documentada, para aquellos que naveguen sin imágenes).
  • Podemos poner enlaces a alguna página web o a un buscador para ayudar a nuestro visitante.
  • Si hemos cambiado algo de sitio, podemos ayudar a nuestros visitantes a que sepan donde está escribiéndoles el enlace o el lugar.

Si nuestro alojamiento soporta programación (php por ejemplo):

  • La página web 404 personalizada tendrá que acabar en php (o en la extensión de la programación web que usemos), en vez de html. Esto tan obvio para muchos programadores, no lo puede ser tanto para los que tiramos de tutoriales en línea y no tenemos mucha idea, o incluso podemos olvidarnos…
  • Podemos hacer que se nos muestre datos útiles de la página visitada, desde que IP nos visitan, fecha, y mas cosas. Recomiendo visitar este enlace donde podréis sacar cosas en claro: 404Error Pages (en inglés), casi al final tiene una página web de muestra con muchos datos interesantes.
  • Podemos hacer que cada vez que encuentre el error 404, se nos envíe un correo electrónico informándonos del fallo. Esto nos ayudará a saber cuales son las páginas que fallan, a corregirlas si es necesario, o a informar a nuestros visitantes de cómo entrar en ellas. Para ello recomiendo esta página web con un ejemplo de ello: Personaliza página 404 de error con php

Lamentablemente, en mi caso, una página 404 personalizada de esta forma, no me permitía hacer algo importante para mí, que era poner el enlace a la nueva ubicación de tal forma que fuera pulsable, e incluso redirigirles después de un período de tiempo automáticamente (con la típica variable meta de redirigir pasado un tiempo).

Seguramente en página genérica 404 si funcione el asunto, pero en las personalizadas, siempre acababa mostrándome el enlace directo de la página personal con el error 404, con lo que solo podía redirigirles a la misma página de error. 🙄

Debido a mi inexperiencia programando, no me podía inventar cualquier comando, y por mucho que busqué una solución, no la hallé rápidamente. Hasta que se me ocurrió que quizás algún comando de .htaccess me permitiera redireccionar automáticamente sin tantas zarandajas.

Redireccionando un directorio a otro con .htaccess

Dicho y hecho. Creamos un documento llamado htaccess.txt y dentro de el ponemos lo siguiente:

Redirect /directorio_antiguo directorio_nuevo

Si, en nuestro caso es un subdominio diferente lo que estamos usando entonces debemos poner solo esto:

Redirect /directorio_antiguo http://www.vuestrodominio.com/directorio_nuevo/

Este fichero debemos subirlo en el directorio principal de nuestro sitio con el directorio antiguo (si ya tenemos uno, debemos añadir la línea al existente para seguir respetando las normas que teníamos y añadir la nueva).

Al subir dicho fichero, debemos renombrar el archivo de htaccess.txt a .htaccess

Ahora podemos probar si funciona, con algún enlace antiguo que tengamos nosotros, y ver como es automáticamente redirigido sin tener que informar al usuario.

¿Para qué nos puede servir esto?

Por ejemplo, para el texto que escribí el día antes a éste, del proceso de mover el foro phpbb. Si hubiera conocido este arreglo, me habría ahorrado muchas horas empleadas para cambiar  direcciones url exactas y antiguas para escribirlas a la nuevo ubicación.

4 comentarios

  1. muchas gracias por la informacion, pero me queda una duda, puedo poner un .htaccess para cada uno de mis directorios, en concreto tengo en un mismo alojamiento diversos dominios y no consigo particularizar los errores 404 para las ausencias de paginas en los distintos, se puede ?

    gracias

  2. Creo que sí se puede hacer, aunque muchos temas de servidores web se me escapan un poco. 🙄

    Supongo que tendrás que poner en cada directorio un .htaccess, personalizar en cada fichero el error 404 para que se dirija a la pagina 404.html personalizada en cada directorio y debería bastar.

    Si se puede hacer que un determinado directorio en concreto tenga una clave de administración (es decir que si entras en ese directorio, automáticamente te pida un usuario y clave (el fichero .htpasswd), supongo que esto será similar.

ATENCIÓN: Puedes opinar sin meter Correo electrónico o Web.


Deja un comentario

Tu dirección de correo electrónico no será publicada.

*

code

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