Como hacer redireccionamiento 301 y 302

Redireccionar una página consiste en enviar al usuario de una dirección a otra. Existen dos tipos de redireccionamiento: 301 y 302, cada uno para diferentes situaciones. Veamos como y cuando utilizar estos tipos para redireccionar de manera apropiada.

Tipos de Redirección

Existen dos tipos de redireccionamiento que podemos utilizar, los dos le cambian de dirección a los visitantes pero se comportan de manera diferente para los buscadores, esto nos puede ayudar a mejorar nuestro posicionamiento si sabes cual emplear.

  • Redirección 301: Indica una redirección permanente.
    Esto le indica a los buscadores que ignoren la dirección original e indexen la nueva dirección. Este tipo de redirección se utiliza cuando estamos cambiando de dominio a una web, esto haría que los buscadores indexen la nueva dirección sin perder los enlaces entrantes que tenía el dominio y sin perder el pagerank.
  • Redirección 302: Indica una redirección temporal.
    Esto indica que la dirección original no ha cambiado y se seguirá utilizando pero temporalmente cambiaremos de dirección.

Redireccionamiento con PHP

Para redireccionar en PHP se utiliza la función header, por defecto esto crea una redirección del tipo 302, indicando un cambio de dirección temporal, mientras que para hacer una redirección del tipo 301 es necesario agregar un header adicional.

Para hacer una redirección 302.

[php]header(“Location: /users/home.php”);[/php]

Para hacer una redirección 301.

[php]
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://newdomain.com”);
[/php]

Redireccionamiento con .htaccess

Las redirecciones también se pueden hacer con el servidor web Apache utilizando el archivo .htaccess el cual esta ubicado en la carpeta principal del servidor.

Para hacer una redirección 302.

[code]redirect 302 /download/ /files/tubeplayer-1.2.zip[/code]

Para hacer una redirección 301.

[code]redirect 301 / http://newdomain.com[/code]

Cambiar de dominio

Si hemos decidido cambiar nuestra web a un nuevo dominio, haremos una redirección 301 con .htaccess de forma que nuestros visitantes vean todas las páginas en el nuevo dominio y los buscadores lo indexen sin perder pagerank.

[code]Redirect 301 (.*) http://newdomain.com/$1[/code]

Redireccionar a WWW

Si tenemos un dominio y deseamos que cuando se acceda a http://mydomain.com esta cambie a http://www.mydomain.com (Esto es llamado canonicalización y evita el contenido duplicado en los buscadores) podemos utilizar el siguiente código en .htaccess.

[code]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain\.com$
RewriteRule (.*) http://www.mydomain.com/$1 [R=301,L]
[/code]

Redireccionar a no-WWW

Ahora podemos elegir que nuestra dirección no contenga el término www. Para ello utilizamos la segunda forma de canonicalización al redirigir desde http://www.mydomain.com hasta http://mydomain.com.

[code]
RewriteEngine On
RewriteCond %{HTTP_HOST} !^mydomain\.com$
RewriteRule (.*) http://mydomain.com/$1 [R=301,L]
[/code]

Mas Información

Comentarios Total 18 comentarios


Gustavo
Publicado: 19/05/2010 6:45 am

¡Excelente explicación!
Es algo que sé que existe desde hace tiempo pero que no le había prestado la correspondiente atención hasta ahora.

Xema
Publicado: 20/05/2010 6:12 am

Y si lo que queremos es mover la web de directorio? que sería lo mejor.

mi ejemplo personal:

en el root tenemos la versión vieja de la web
en el directorio V2 tenemos la versión nueva de la web que estamos terminando. para redireccionar tanto en php como en .htaccess como lo hariamos?

PD: se que lo mejor sería tener la nueva en el root pero la estructura y archivos son difíciles de mover, además de tener que hacer más cambios manuales.

Carluis Pérez
Publicado: 23/05/2010 12:53 pm

una buena explicación! me ha gustado mas que trabajes con el .htaccess es bueno que expongas este tema muchas personas entre ellas yo,se interesan mucho en este tipo de explicaciónes claras como esta.

HTTP Redirect Viewer | unijimpe
Publicado: 23/05/2010 3:50 pm

[…] caso para no utilizar WWW en el dominio).Esta herramienta fue escrita como complemento al artículo Como hacer redireccionamiento 301 y 302, si tienen sugerencias u observaciones pueden dejarnos un comentario para tomarlo en cuenta para […]

FCR
Publicado: 26/05/2010 12:09 am

wow, no tenia idea de los tipos de redireccion.

Azahi
Publicado: 14/07/2010 11:36 am

Hola,

puedo realizar el 301 desde un blog de blogger a una pagina de wordpress?

Saludos.

unijimpe
Publicado: 14/07/2010 11:17 pm

Hola Azahi hacer la redirección 301 no es sencillo pues no puedes subir un archivo .htaccess, en lugar de ello se hace uso de un metatag. Explicarlo es un poco complicado, pero puedes leer un excelente articulo http://www.dannytalk.com/2008/07/26/how-to-301-redirect-from-blogger-to-wordpress/

Azahi
Publicado: 17/07/2010 3:35 pm

Hola nuevamente,

te agradesco el articulo pero sigo sin poder realizarlo. Hice todo lo que Danny menciona, chequie no haber puesto la / al final de cada direccion, pero = sigue sin redirigirme. Tal ves podrias darme una mano con esto, mi blog es:

http://juegosdeface.blogspot.com

y quiero redirigirlo a:

http://www.facebookjuegos.net

Saludos.

mario jesus
Publicado: 20/02/2011 11:09 pm

Hola tengo una pregunta.
Verán quiero diseñar una página llamada (pagina1) que tenga un código que me diga si la (página 2), está disponible en caso de que no esté disponible me deje en dicha página ósea (pagina1) y muestre un anuncio de que (página 2) no está disponible. y en caso de que la (página 2) esté disponible me lleve o re direccione a la (pagina2)
Espero alguien pueda ayudarme.

vanessa
Publicado: 07/09/2011 11:10 am

yo quiero dirccionar una pagina y esta a la vez me lleve a otra distintas

Juan Carlos
Publicado: 02/10/2011 9:51 am

saludos , tengo un problema quiero que mi pagina para posicionar sea “http://treatment-hemroids.com/” y he cambiado el htacces para redireccionar a no-WWW , pero cuando compruebo en esta herramienta http://www.virante.com/seo-tools para ver lo del contenido duplicado
me sale esto ” Your site is not returning a 301 redirect from www to non-www or vice versa. This means that Google may cache both versions of your site, causing sitewide duplicate content penalties ”
que hago

jesus
Publicado: 16/12/2011 11:26 pm

Hay alguna otra forma de hacer redireccioanientos sin PHP? quiero redireccionar un dominio que tengo en blogger. Como puedo hacerlo?
Gracias.

Un saludo

unijimpe
Publicado: 20/12/2011 10:12 am

Podrías hacerlo mediante el metatag refresh en donde debes indicar a que ruta debe redireccionar la pagina:

<meta http-equiv="refresh" content="0; url=http://tu-web.com">

El problema de este método es que al redireccionar no transfieres el pagerank y posicionamiento al nuevo dominio.

Seo Web Consultor
Publicado: 05/01/2012 7:36 am

De cara al SEO y al posicionamiento web, la redirección más correcta y más indicada es la de HTACCESS

JOAQUIN
Publicado: 25/01/2012 8:26 am

HOLA, TENGO UNA CONSULTA, NECESITO HACER QUE CUANDO INGRESE A MI SITIO A CIERTOS DIRECTORIOS, QUE NO LOS MUESTRE EN LA URL.
EJ:

http://WWW.DOMINIO.COM/DIRECTORIO1/DIRECTORIO2/
SE VEA
http://WWW.DOMINIO.COM

ALGUIEN ME PODRIA AYUDAR?
GRACIAS

Carmen
Publicado: 25/10/2012 10:28 am

Hola, tengo una consulta.

Existe algún tipo de redirección que reconozca la IP, es decir, un enlace según tu país te dirige a una web u otra??

la sexta tijuana
Publicado: 20/11/2012 5:47 am

Hola, quisiera saber como se hace esta técnica en blogger. Muchas gracias ^^

Eborio Linárez
Publicado: 24/02/2013 11:15 am

Gracias por el artículo, con el solvente los redireccionamientos 301 en mi sitio web ya que cambie la estructura de las urls de mis artículos

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)