Seleccionar página

train-switchAcabas de cambiarte a un CMS, o de un CMS a otro, o has cambiado de dominio, y evidentemente has perdido tus URL antiguas, esto es muy típico.

Así que lo que buscas es una forma de que tus antiguas URL redirijan a las correspondientes páginas, que ahora tienen una nueva URL. Bien, lo más fácil para hacer esto es una redirección 301, normalmente en el fichero .htaccess.

Pero en mi opinión, abusamos de este fichero. Dependemos demasiado de él. .htaccess tiene varios inconvenientes:

  • Es un fichero de Apache Web Server, si usas Nginx por ejemplo, .htaccess no te sirve para nada.
  • Es exclusivo en servidores Linux. Si tu servidor es Windows, tampoco te sirve.
  • En ocasiones, los CMS lo controlan tanto tanto, que por muchos cambios que le hagas estos no se aplican. En PrestaShop, por ejemplo, es algo complejo hacerlo funcionar.
  • Por no hablar de que modificar un fichero .htaccess es como trabajar con una bomba: depende del cable que toques, boom. Pues eso, si no haces las cosas bien, tu web deja de funcionar por culpa de una configuración errónea de .htaccess.

¿Cómo hago una redirección 301 sin modificar manualmente .htaccess?

Si estás en un CMS como WordPress o PrestaShop, puedes buscar algún plugin de redirecciones. En WordPress los hay gratuitos, en PrestaShop concretamente son de pago. La mayoría de estos plugins se basan en .htaccess, así que si lo que buscas es evitar ese archivo, mejor sigue leyendo.

¿Cómo hago una redirección 301 sin usar .htaccess?

Podemos hacer redirecciones con PHP de una forma extremadamente simple. No es lo más óptimo tener que llegar a PHP para esto, pero en ocasiones no queda más remedio. Cuando tenemos un hosting shared en los que no tenemos mucho control de configuraciones y demás, por ejemplo.

Vamos a crear un nuevo archivo en la raiz de nuestro sitio, llamado por ejemplo redirecciones.php

Este archivo tiene dos cosas:

  • Un array clave => valor, donde establecemos la url antigua (sin el dominio) en la clave, y la url nueva en el valor. En el valor sí podemos poner el dominio, es indiferente.
  • Un bloque que comprueba si la URL a la que un usuario intenta acceder está en nuestra lista de claves. De estarlo, redirige a la URL nueva correspondiente.

Ahora debemos ir al archivo index.php de nuestro CMS, e incluir nuestro archivo de redirecciones al principio del todo, antes que cualquier otra cosa, para efectuar la redirección antes de que se cargue el sistema.

Es un método muy sencillo y muy efectivo si no queréis pelearos con el archivo .htaccess.

“Si tienes muchos casos especiales, algo estás haciendo mal” 
.- Craig Zerouni