No tener dos URL con los mismos contenidos

28 de septiembre de 2006
Valoración del artículo:
Si utilizamos htaccess debemos prestar especial atención a no tener dos páginas, con URLs disitintas, que tengan exactamente el mismo contenido.
Uno de los problemas que podemos encontrar derivados del uso de htaccess para crear URLs amistosas a buscadores es que se de el caso de que distintas URLs muestren exactamente las mismas informaciones.

Por lo visto, tener en un dominio dos páginas con los mismos contenidos no está bien visto por los motores de búsqueda, que pueden considerarlo una trampa encaminada a confundirle y hacerle pensar que el sitio es más grande de lo que realmente es.

¿Cómo puede ser que dos páginas tengan los mismos contenidos?

Por ejemplo, pensemos en una regla como esta:

RewriteRule ^articulos/(.+)\.php codigo/ver_articulo.php?nombre=$1

Esto quiere decir que existirán URLs como estas:

www.dominio.com/articulos/plantas-decorativas.php
www.dominio.com/articulos/plantas-medicinales.php
www.dominio.com/articulos/plantas-aromaticas.php


Imaginemos que alguna persona se equivoca y nos pone un enlace a un artículo que no existe:

www.dominio.com/articulos/plantas-decor.php
www.dominio.com/articulos/plantas-medicina.php

Nosotros en la página que muestra los artículos “ver_articulo.php” tendremos que comprobar si existe un artículo con ese nombre.
//tengo que ver si este articulo tiene nombre
$ssql = "select * from articulo where nombre = $nombre ";
$rs = mysql_query($ssql);
if (mysql_num_rows($rs)==0){
//es que no existe un articulo con ese nombre
echo “Error. No tenemos ese artículo”;
}


Con este código, cada vez que se escriba una URL con un error nos mostraría los mismos contenidos: el mensaje “Error. No tenemos ese artículo”. Esto es algo que pretendíamos evitar.

Para evitar mostrar en URLs que no existen realmente los mismos contenidos, una solución es hacer una redirección a una página de error.

if (mysql_num_rows($rs)==0){
//es que no existe un script con ese id
header ("location: /error_articulo.php");
exit();
}


Así, cuando alguien se equivoque al componer la URL se mostrará un mensaje de error, pero para el buscador todos los mensajes se ofrecen desde la misma página web.

También podemos hacer que PHP envíe al navegador del usuario una cabecera con el error de página no encontrada (error 404 del HTTP).

header("HTTP/1.0 404 Not Found");

Son dos posibilidades, cada cual puede utilizar la que desee, aunque es posible que la del error 404 sea más útil y elegante.

Compartir en redes sociales

Comentarios
Fueron enviados 4 comentarios al artículo
1 comentario no revisado
3 comentarios revisados:
RTA: como procesar las variables por htaccess
04/8/2009
si no estoy equivocado para
www.midominio.com/categoria/titulo.html

seria algo asi:

RewriteRule ^categoria/(.+).html codigo/muestra_articulo_htaccess.php?id=$1

Proba y despues comentanos que tal te fue
Esto se puede conciderar urls con el mismo contenido?
04/8/2009
# esto da http://midominio.com/usuario/kapry_ar.php
RewriteRule ^usuario/(.+).php index.php?user=$1 [L]
# esto da http://midominio.com/usuario/kapry_ar.html
RewriteRule ^usuario/(.+).html index.php?user=$1 [L]
# esto da http://midominio.com/usuario/kapry_ar.htm
RewriteRule ^usuario/(.+).htm index.php?user=$1 [L]
# esto da http://midominio.com/usuario/kapry_ar
RewriteRule ^usuario/(.+) index.php?user=$1 [L]

soytang...
id en la url amigable
30/12/2010
alguien sabe de casualidad como puedo quitar el id de mi url amigable

ejemplo
http://servidor/pagina/project8_nombre
asi la tengo, pero quiero que salga asi
http://servidor/pagina/project_nombre

pero ese numero es un id de un producto no se si la pueda quitar de la url ??

Manuales relacionados
Categorias relacionadas
El autor
Miguel Angel Alvarez
Director de DesarrolloWeb.com
http://www.desarrolloweb.com


Lectura recomendada
Compra este libro en Agapea, la librería urgente a domicilio.
Últimas noticias
Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...