3 consejos para hacer tus redirecciones fácilmente desde .htaccess
Acabamos de terminar la nueva versión de nuestra Web. Hemos abandonado esa plataforma CMS arcaica, o quizás ese HTML básico y nos hemos pasado a WordPress. Y de repente nos damos cuenta que las URLs que teníamos en la web antigua no coinciden con la nueva, y además que no es posible poner en WordPress las antiguas, o que no conviene porque las nuevas son más amigables. Si teníamos un buen posicionamiento con esas páginas antiguas podemos perderlo y tener que volver a ganarlo desde cero con la nueva Web. La solución a esto es el uso de redirecciones que podemos hacer desde el .htaccess de nuestra web.
En primer lugar, vamos a aclarar qué es una redirección. Una redirección es una regla mediante la que le indicamos a nuestro servidor web que una (o varias) URLs deben de ser dirigidas a otra. Existen diferentes formas de hacerlo, y también diferentes tipos de redirecciones. A continuación vamos a ver cómo hacer las redirecciones más sencillas sin necesidad de utilizar expresiones regulares. Para ello vamos a explicar los tipos de redirecciones, una regla básica sobre la URL de destino, y el uso de la directiva Redirect:
1. Tipos de redirecciones. Redirección 301 y 302
Existen dos tipos de redirecciones, las llamadas permanentes 301 y las temporales 302. En realidad, es complicado imaginar una situación para una 302, se supone que redirigimos una URL durante un tiempo pero que luego volverá a ser la que era. Lo más habitual para una redirección suele ser que cambiemos de dominio o cambiemos la estructura de URLs, pero no temporalmente para volver a las antiguas, sino de forma permanente. Estas últimas son las redirecciones 301.
A nivel de usuario es algo irrelevante, pues en ambos casos veremos que la URL de nuestro navegador cambia a la URL nueva y se carga la página. Sin embargo, sí que tiene relevancia para los motores de búsqueda que lo tendrá en cuenta de cara a sus resultados de búsqueda futuros. Los motores de búsqueda que ven una redirección 302, seguirán mirando la URL antigua a la espera de que vuelva a estar habilitada. En el caso de la 301 lo almacenará para modificar la URL antigua en sus resultados de búsqueda.
2. Regla de la URL de destino completa
Siempre que utilicemos redirecciones, sea de cualquiera de los tipos que veremos más adelante, debemos porner la URL de destino completa. Aunque estemos redirigiendo páginas dentro del mismo dominio, es decir, queremos que www.midominio.com/page.php?id=32344 pase a www.midominio.com/quienes-somos/, y veremos que en las reglas ponemos cosas como
Redirect 301 /page.php?id=32344 http://www.midominio.com/quieres-somos
En la primera definición no ponemos nuestro dominio, pero siempre lo ponemos en la segunda. A veces se cae en la tentación de poner cosas Redirect 301 /page.php?id=32344 /quienes-somos , lo cual no funcionará y podemos volvernos un poco locos buscando el error. Por tanto, la URL a la que redirigimos siempre debe ser completa.
3. La redirección 301 más simple con la directiva Redirect
Esta directiva nos permite redirigir una URL concreta a otra, si tenemos 100 URLs que redirigir tendremos que escribir 100 directivas Redirect. La sintaxis de una directiva Redirect es:
Redirect <tipo> <origen_sin_dominio> <destino>
Nos permitirá redirigir una URL que coincida con el origen, sustituyendo por lo que pone en el destino. Así por ejemplo, si simplemente hemos migrado nuestra web en www.midominioantiguo.com a nuestro dominio www.midominionuevo.com, pero mantenemos las misma estructura de páginas y URLs, una directiva como Redirect 301 / http://www.midominionuevo.com/ hará que todo lo que fuera a nuestra Web antigua sea redirigido a la nueva. Por así decirlo, cuando encuentra la /, que hemos puesto como origen, cambia todo lo que haya antes por lo que pone destino. En este caso cambiaría www.midominioantiguo.com por www.midominionuevo.com . Debemos tener cuidado, porque si ponemos esa directiva ya no seguirá leyendo ninguna más, ya que todas las URLs que pongamos “encajarán”. Ponemos otro ejemplo para explicarlo:
Redirect 301 / http://www.dominionuevo.com/
Redirect 301 /quienes-somos http://www.dominionuevo.com/la-empresa
Ante una visita a http://www.dominioantiguo.com/quienes-somos seremos redirigidos a http://www.dominionuevo.com/quienes-somos . Deberíamos haber invertido el orden de las directivas, de tal manera que la primera sea siempre la última, ya que todas las URLs se aplican a esa directiva, y por tanto debemos ponerla al final para que las demás tengan efecto:
Redirect 301 /quienes-somos http://www.dominionuevo.com/la-empresa
Redirect 301 / http://www.dominionuevo.com/
En un próximo post veremos cómo usar expresiones regulares para hacer redirecciones.