Google vs el RewritePath de ASP.NET

ASP.NET no es perfecto. Y punto.

Uno de los peores errores que se pueden tener, son aquellos que no ves. Aquellos que no te enteras si quiera de que están sucediendo. Aquellos que cuando te enteres que están sucediendo, no entiendas qué está pasando ni por qué.

Esto es lo que sucede cuando GoogleBot (y muchos otros rastreadores como Yahoo Slurp) visitan algunas de tus páginas ASP.NET a las que has aplicado el RewritePath. Por ejemplo, si usas este famoso Url Rewriter es casi seguro que te está afectando el problema (yo siempre aconsejo el UrlRewritingNET).

Lo que sucede es que ASP.NET, según quién le esté visitando, devuelve una cosa y otra. En el caso de que le visiten algunos de los crawlers buscadores más importantes cuando usamos el RewritePath, ASP.NET puede devolver "paths" que apuntan "muy hacia abajo". Por ejemplo, puede darse el caso de que estemos en www.subgurim.net/default.aspx, y ASP.NET devuelva enlaces con "../../", con lo que salta un feo error.

Tras darle muchas vueltas y conseguir soluciones feas, y dado que los buscadores no tienen la culpa y ASP.NET no tiene pinta de querer solucionar el error, la mejor solución que he encontrado es usar el directorio App_Browsers, añadiéndole los archivos que tenéis más abajo de forma que "engañamos" a ASP.NET para que nos devuelva un código bueno.

ASí que la solución es fácil, añades esos archivos al directorio web.config y todo solucionado.

Descargar App_Browsers