Foros del Web » Programando para Internet » ASP Clásico »

URLs amigables sobre la misma página convencional

Estas en el tema de URLs amigables sobre la misma página convencional en el foro de ASP Clásico en Foros del Web. Os cuento: Estoy armando urls amigables de todos mis contenidos, lo que hago es al generar los links, coger el titulo de la base de ...
  #1 (permalink)  
Antiguo 10/10/2012, 03:24
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 4 meses
Puntos: 1
URLs amigables sobre la misma página convencional

Os cuento:

Estoy armando urls amigables de todos mis contenidos, lo que hago es al generar los links, coger el titulo de la base de datos de la página que voy a linkar, limpiarlo de signos y armar la url amigable, en el link paso el ID del contenido que es el que luego utilizo para montar la página.

Osea, quiero pasar de :

www.midominio.com/contenido.asp?contenidoId=15

a

www.midominio.com/tiulo-de-mi-contenido/15.html

Ya funciona, pero el problema que tengo es que como siempre llamo a la misma página física (contenido.asp) porque es en ella misma donde muestro el contenido, venga la visita por la url convencional o por la amigable, me esta duplicando todos los contenidos y en el webmaster tools acabo de ver que tengo 18.000 urls duplicadas con lo que esto supone en SEO.

¿Se os ocurre alguna solución?

Gracias a quién pueda ayudarme!!
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #2 (permalink)  
Antiguo 10/10/2012, 10:42
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 1 mes
Puntos: 31
Respuesta: URLs amigables sobre la misma página convencional

Buenas tardes,

Por lo que entendí, tu problema es que la URL amigable y la "URL física" llaman a lo mismo, y
Google te lo toma como que son distintas con contenido duplicado.
Si ese es el caso, lo primero que deberías hacer es, a todos los lugares donde se muestra la url física en tu sitio,
cambiarlas por la url amigable para que Google indexe la url correcta.
Lo segundo sería, en el asp colocar un código, donde revisara la URL, y en caso de que no venga
desde la URL amigable, reenviarlo a la url amigable, con un código 301
Esto sería algo así:


Código ASP:
Ver original
  1. 'Lo hice con una expresion regular. tal vez tengas que cambiarla
  2.     Set aRegExp = New RegExp
  3.     aRegExp.IgnoreCase = True
  4.     aRegExp.Pattern = "^(.*)/contenido\.asp\?[contenidoid](.*)$"
  5.     sHeaderUrl = request.servervariables("HTTP_X_REWRITE_URL")
  6.     If aRegExp.Test(sHeaderUrl) Then 'Si en la url viene el id y la pagina asp
  7.         Response.Status="301 Moved Permanently"
  8.         Response.AddHeader "Location", "www.midominio.com/tiulo-de-mi-contenido/15.html"
  9.         Response.End
  10.     end if

Saludos!
__________________
Tomarse un tiempo para redactar correctamente la pregunta, utilizando los signos de puntuación adecuados, es ganar tiempo y calidad en la respuesta.
  #3 (permalink)  
Antiguo 11/10/2012, 08:10
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: URLs amigables sobre la misma página convencional

Gracias por la respuesta JAvier

Estoy probando pero

request.servervariables("HTTP_X_REWRITE_URL")

no recoge ningún valor, ¿Esta variable de servidor es de ASP Clásico?, no la conocía...

Como no recoge valor alguno, el código no funciona :(
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #4 (permalink)  
Antiguo 11/10/2012, 08:14
Avatar de hyperwin  
Fecha de Ingreso: agosto-2010
Mensajes: 1.290
Antigüedad: 13 años, 8 meses
Puntos: 68
Respuesta: URLs amigables sobre la misma página convencional

En qué versión de IIS teneis corriendo vuestra web?
__________________
Administrador de Servidores Windows
www.hyperwin.net
WebSitePanel - Helm Control - HostingController - DotNetPanel
Instalación - Configuración - Hardening - Solución de problemas
  #5 (permalink)  
Antiguo 11/10/2012, 08:34
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: URLs amigables sobre la misma página convencional

Microsoft-IIS 7.5
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #6 (permalink)  
Antiguo 12/10/2012, 06:12
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 1 mes
Puntos: 535
Respuesta: URLs amigables sobre la misma página convencional

Hola, además podrías hacer uso <link rel="canonical" ... />
__________________
...___...
  #7 (permalink)  
Antiguo 15/10/2012, 08:12
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: URLs amigables sobre la misma página convencional

La idea de Javier es excelente, el problema es que no sé como distinguir la URL verdadera, osea:

www.midominio.com/contenido.asp?contenidoId=15

de la amigable:

www.midominio.com/tiulo-de-mi-contenido/15.html

porque si pudiese, con un IF podría hacer el redirect 301.

Desde el web.config no sé como hacerlo porque la url amigable la "armo" con la variable que trae la url, con ella la monto a partir del título del contenido, y en el web.config no puedo hacer esto.

Osea me toca ejecutar la pagina contenido.asp?contenidoId=15 , leer el titulo del contenido, armar la url amigable y después si la url que esta cargando es la no amigable, hacer un redirect 301 a la amigable o ponerle el canonical, pero no se como diferenciar una url de la otra.

Con los request de servidor siempre capturo la url no amigable....

me va a dar algooooooo, buahhhhh
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #8 (permalink)  
Antiguo 17/10/2012, 08:40
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: URLs amigables sobre la misma página convencional

Dejo la respuesta por si sirve a alguién con este problema.


La url que esta cargando el explorador se recoge así:

Request.ServerVariables("REQUEST_URI")

y la condicional es sencillamente esta:

Dim url_que_carga,palabra_maldita
url_que_carga = Request.ServerVariables("REQUEST_URI")
palabra_maldita ="contenido.asp?contenidoid="

If InStr(url_que_carga,palabra_maldita)>0 then
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", url_amigable
End if
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...

Etiquetas: amigables, seo, url
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 05:44.