
Hay veces, que bien sea porque has cambiado de servidor o dominio, o simplemente porque has modificado la URL de una de tus páginas webs, quieres que los enlaces o links que ya existen a la misma sigan funcionando correctamente. Para ello, lo que tenemos que hacer es informar al servidor, donde están el dominio o las páginas anteriores, que todas las peticiones o visitas que se hagan a las antiguas URLs vayan directamente a las nuevas, sin que éste nos arroje una página de error 404.
En el caso de que uses Apache, que es el servidor que normalmente se utiliza para páginas en lenguaje PHP o para gestores de contenidos tipo WordPress o Joomla, vamos a ver en esta entrada como realizar dicho redireccionamiento.
Redireccionamiento definitivo de URLs en Apache mediante .htaccess
Para poder realizar la redirección de nuestras antiguas páginas a las nuevas, debes configurar el archivo .htaccess en tu servidor. Este archivo contiene una serie de condiciones y directivas que configuran al servidor para trabajar de una determinada manera. Cuidado al modificarlo, pues un error en el mismo puede hacer que tus páginas sean inaccesibles.
Al abrir el archivo .htaccess, verás algo parecido a esto:
1 2 3 4 5 6 | <IfModule mod_rewrite.c> RewriteEngine On ... ... ... </IfModule> |
En el caso de que tu archivo no tenga este contenido, añádelo al mismo, y si ya contiene la etiqueta mod_rewrite, añade la directiva RewriteEngine On dentro de dicha etiqueta.
Indicar este cambio de dirección o hacer el redireccionamiento es algo muy sencillo, lo único que tienes que introducir en el archivo .htaccess es una directiva Redirect 301 junto a las URLs antigua y nueva, quedando una cosa parecida a la siguiente, donde tendrás que modificar las distintas URLs del ejemplo por las de tus páginas.
1 2 3 4 5 6 7 | <IfModule mod_rewrite.c> RewriteEngine On ... ... ... Redirect 301 ruta_de_la_antigua_url ruta_de_la_nueva_url </IfModule> |
Imaginemos que tenemos dos servidores ‘servidor1‘ y ‘servidor2‘ y vamos a realizar dos redirecciones: en la primera, vamos a redireccionar una página ‘pagina1‘ de nuestro servidor1, a una página ‘pagina2‘ del mismo servidor, quedando así:
1 2 3 4 5 6 7 | <IfModule mod_rewrite.c> RewriteEngine On ... ... ... Redirect 301 /pagina1 /pagina2 </IfModule> |
En el segundo redireccionamiento, vamos a redireccionar una página pagina1 en nuestro servidor1 a una página pagina2 en nuestro servidor2, por lo que quedaría así:
1 2 3 4 5 6 7 | <IfModule mod_rewrite.c> RewriteEngine On ... ... ... Redirect 301 /pagina1 http://servidor2/pagina2 </IfModule> |
El .htaccess que habrá que modificar en ambos casos es el que está situado en el servidor1, que es donde se encuentran las URLs que queremos redireccionar.
Y listo, una vez que solicitemos al navegador la antigua URL, éste nos redireccionará a la nueva.
