Foros del Web » Programando para Internet » PHP »

Con ModRewrite aparecen en Google las dos páginas?

Estas en el tema de Con ModRewrite aparecen en Google las dos páginas? en el foro de PHP en Foros del Web. Hola, Estoy usando por primera vez ModRewrite y tengo una duda: La versión "oculta" del sitio (digamos noticia.php?id=3) al estar en el servidor.. no aparece ...
  #1 (permalink)  
Antiguo 08/04/2012, 01:59
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 19 años, 3 meses
Puntos: 4
Con ModRewrite aparecen en Google las dos páginas?

Hola,

Estoy usando por primera vez ModRewrite y tengo una duda:

La versión "oculta" del sitio (digamos noticia.php?id=3) al estar en el servidor.. no aparece también en los resultados de búsqueda de Google al igual que noticia/titulo-de-la-noticia/ y sería tratado como contenido duplicado?

Un ejemplo de mi htaccess es:

Rewriterule ^equipos/(.+)/(.+) equipo.php?id=$1&nombre=$2

Gracias por la orientación!
__________________
Equívocos sin importancia
  #2 (permalink)  
Antiguo 08/04/2012, 02:24
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 10 años, 5 meses
Puntos: 7
Respuesta: Con ModRewrite aparecen en Google las dos páginas?

No, sólo aparece /equipos/1/nombre-del-equipo :)
__________________
@JaimeMSE - ¡Sígueme!
  #3 (permalink)  
Antiguo 08/04/2012, 02:42
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 19 años, 3 meses
Puntos: 4
Respuesta: Con ModRewrite aparecen en Google las dos páginas?

Gracias, Jaime!

Otra pregunta respecto al tema:

Partiendo del mismo ejemplo

Rewriterule ^equipos/(.+)/(.+) equipo.php?id=$1&nombre=$2

¿Cómo podría hacer para crear una página 404 cuando el registro no existe en la BD?

Actualmente, con la estructura equipos/30/fulano-de-tal si yo cambio 30 por otro número me sale mi propio error realizado con la condición if() pero quisiera redirigir directamente a un 404.

También, por ejemplo, si mantengo el 30 y cambio fulano-de-tal por cualquier otra cosa la página funciona porque realmente lo importante es el ID y el nombre es sólo para el SEO, ¿Sería posible que si se cambia el nombre también redirigir a un 404 aunque el ID corresponda a un registro en la BD?

Gracias!
__________________
Equívocos sin importancia
  #4 (permalink)  
Antiguo 08/04/2012, 06:32
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 10 años, 5 meses
Puntos: 7
Respuesta: Con ModRewrite aparecen en Google las dos páginas?

Hola,

Pon esto en tu .htaccess:

ErrorDocument 404: "404.php"

Y haz un fichero llamado 404.php por ejemplo. Ya con eso, si pones cualquier letra o número que no corresponda a ninguno, salta ese error.

Si no es así avísame y te ayudo :)
__________________
@JaimeMSE - ¡Sígueme!
  #5 (permalink)  
Antiguo 08/04/2012, 10:51
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 19 años, 3 meses
Puntos: 4
Respuesta: Con ModRewrite aparecen en Google las dos páginas?

Hola, Jaime.

Gracias por la ayuda. Al final el htaccess quedó así: ErrorDocument 404 /404.php

El tema es que, si bien funciona con todas las páginas, no lo hace si uno modifica las variables en la URL puesto que, tecnicamente, la página sí existe (y procesa el hecho de que no haya un registro con la ID especificada). Ejemplo:

http://localhost/evento/21/nombre

Si yo pongo http://localhost/evento/999/nombre no me lleva al 404.php sino a "Este evento no existe en la base de datos", un error especificado en la página real "eventos.php" usando php y mysql.

Espero darme a explicar! :)
__________________
Equívocos sin importancia
  #6 (permalink)  
Antiguo 08/04/2012, 11:11
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 10 años, 5 meses
Puntos: 7
Respuesta: Con ModRewrite aparecen en Google las dos páginas?

Hola,

La única idea que se me ocurre es que cambies la parte de "Este evento no existe en la base de datos" por un header location.

Quedaría así:

Código PHP:
Ver original
  1. header("LOCATION: 404.php");

Con eso creo que te funcionará
__________________
@JaimeMSE - ¡Sígueme!

Etiquetas: google, modrewrite
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:00.