Redireccionar un dominio con PHP
La manera correcta de redireccionar un dominio o página web a una nueva ubicación, una nueva URL, es utilizando el código de estado HTTP 301.
¿Qué es el redireccionamiento 301?
El redireccionamiento 301 es el método más efectivo para preservar tu posicionamiento en los buscadores a la hora de redirigir o renombrar un dominio (o página web) a una nueva URL. El código 301 es interpretado como Movido Permanentemente (Moved Permanently) y de esta manera no sólo se informa a los agentes de usuario (navegadores, etc) de la nueva ubicación sino que ésto también nos permite notificar o informar a los motores de búsqueda de que la ubicacion del recurso en cuestión ha cambiado.
Los motores de búsqueda consideran que los dominios example.com y wwww.example.com son diferentes y que cada uno provee diferentes contenidos. Si bien en la práctica esto generalmente no ocurre, ya que por lo general uno juega limpio, un error puede llegar a hacer detectar a los motores de búsqueda que nuestro contenido es spam (spammindexing) lo que terminaría afectando seriamente el posicionamiento del sitio en cuestion.
Otra cosa que hay que tener en cuenta es que el hecho de no informar cual es nuestro dominio preferido a los motores de búsqueda conlleva a que éstos tengan que analizar nuestro contenido dos veces y, si bien en la práctica no se ve, esto también podría afectar el posicionamiento del dominio. En el peor de los casos los buscadores podrían detectar que estamos publicando contenidos duplicados (duplicate content) y penalizarnos por eso.
Si bien esto en la práctica por lo general no ocurre, ya que por lo general uno juega limpio, siempre es preferible prevenir que curar. Otra ventaja con respecto a este tema es que nos permite ahorramos recursos en el servidor donde hosteamos nuestro dominio (ancho de banda, procesamiento, etc.) así como también en los servidores de los buscadores.
Ejemplos:
En los siguientes ejemplos se indica cómo redireccionar "example.com" a "www.example.com" así como también como redireccionar un recurso (una página, una imagen, un mp3, etc.) a una nueva ubicación (evitando las cuestiones extras de lógica en PHP para que no se extienda demasiado):
Redireccionar "dominio.com" a "www.dominio.com" utilizando PHP:
<?php
// Redirect non-www to www.
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.example.com/');
exit;
?>
Redireccionar "dominio.com" a "www.dominio.com" mediante un archivo .htaccess:
<Directory "/path/to/document/root">
Order allow,deny
Allow from all
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule .? http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
</Directory>
Redireccionar un recurso con PHP, "http://www.example.com/faq.php" a "http://www.example.com/faq/":
<?php
// Redirect http://www.example.com/faq.php to http://www.example.com/faq/
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.example.com/faq/');
exit;
?>
Redireccionar un recurso mediante un archivo .htaccess, "http://www.example.com/faq.php" a "http://www.example.com/faq/":
<Directory "/path/to/document/root">
Order allow,deny
Allow from all
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^faq.php$ /faq/ [R=301,L]
</IfModule>
</Directory>
Enlaces relacionados a este tema:
- W3C: Don't use "refresh" to redirect..
- W3C: Choose URIs wisely.
- How to redirect a web page, the smart way.
- Wikipedia: URL redirection.
- Publicado:
- Viernes 19 de Diciembre de 2008 a las 01:59:55
- Autor:
- Juan Francisco Giordana
- Categoría:
- Diseño Web
- Comentarios:
- 3 comentarios
- Agregar comentario
- Comentarios RSS:
- Suscribirse a estos comentarios. (Coming ... not soon.)
- Favoritos:
-
- Agregar Redireccionar un dominio con PHP en Del.icio.us
- Agregar Redireccionar un dominio con PHP en Digg
- Agregar Redireccionar un dominio con PHP en Technorati
- Agregar Redireccionar un dominio con PHP en Fresqui
- Agregar Redireccionar un dominio con PHP en Meneame
- Agregar Redireccionar un dominio con PHP en Bloglines
- Agregar Redireccionar un dominio con PHP en Reddit
- Agregar Redireccionar un dominio con PHP en Furl
- Agregar Redireccionar un dominio con PHP en Blinklist
- Agregar Redireccionar un dominio con PHP en Magnolia
- Agregar Redireccionar un dominio con PHP en Stumble Upon
- Agregar Redireccionar un dominio con PHP en Spurl
- Agregar Redireccionar un dominio con PHP en Rojo
- Agregar Redireccionar un dominio con PHP en Shadows
- Agregar Redireccionar un dominio con PHP en Simpy
- Agregar Redireccionar un dominio con PHP en Co.mments
- Agregar Redireccionar un dominio con PHP en Scuttle
- Agregar Redireccionar un dominio con PHP en Yahoo My Web
- Agregar Redireccionar un dominio con PHP en Google Bookmarks
- Agregar Redireccionar un dominio con PHP en Newsvine
- Agregar Redireccionar un dominio con PHP en Icerocket
- Agregar Redireccionar un dominio con PHP en FSDaily
En realidad para cuando armas un VHOST usas ServerAlias que es una directiva la cual te permite redireccionar www al sin o al vesre.
Enviado por alberto ferrer el 22/12/2008 11:22:36 (#).
@Alberto: Error!, ServerAlias te permite tener nombres alternativos para acceder a un mismo mismo name-virtual host: Alternate names for a host used when matching requests to name-virtual hosts.
ServerAlias es una de las razones que hacen que surja este problema, ya que por lo general se lo configura de la siguiente manera:
Es en éste tipo de casos donde aparecen los múltiples subdominios y los problemas con los buscadores, ya que no importa lo que pongas detrás del punto, siempre vas a caer en el mismo lugar: example.com.
En realidad, en vez de utilizar un alias tan general, lo que se debe hacer es lo siguiente:
Esto es para facilitarle el ingreso al usuario, ya que no todos indican www. cuando tratan de acceder a un sitio.
Luego redireccionás, con cualquiera de los métodos anteriores, al usuario al dominio apropiado y toda la operación termina siendo transparente para él.
Enviado por Juan el 22/12/2008 11:22:13 (#).
My Bad T_T
Enviado por alberto ferrer el 22/12/2008 06:22:38 (#).