Valencia, 28/05/2010, Gatsu

Cualquier gestor de contenidos (CMS), blog, y a nivel general, todo proyecto web descargable, tienen una opción dentro del panel de administrador, que al activarla convierte las URL en URL SEO (o URL amigables), pero, como casi todos los posts que ya he escrito, para todo aquel que quiera convertir las URL de su página, que siga leyendo.
Lo primero a tener en cuenta es que necesitaremos una librería llamada urlrewritter (descargable desde su página web). Esta librería es gratuita para cualquier tipo de uso, e incluso puedes descargarte su código fuente para modificarla (yo no lo hice). Una vez descargada, la añadimos al proyecto web que estemos creando (únicamente compatible con sitios asp.net) y abrimos el archivo de configuración (web.config) para editarlo y hacer que lea la librería. Exactamente tenemos que hacer lo siguiente:
- Dentro de la etiqueta “configuration” pegamos el siguiente código
[xml]<configsections>
<section name="rewriter" requirePermission="false"
type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler,
Intelligencia.UrlRewriter" />
</configsections>[/xml] - Dentro de la etiqueta “system.web” colocamos este fragmento
[xml]<httpmodules>
<add type="Intelligencia.UrlRewriter.RewriterHttpModule,
Intelligencia.UrlRewriter" name="UrlRewriter" />
</httpmodules>[/xml]
Una vez con este código insertado, solo nos quedaría establecer las reglas para que convierta las URL, para ello copiamos después de que se cierre la etiqueta “system.web”
[xml]<rewriter>
<rewrite url="URLPRUEBA.aspx" to="redirect.aspx" processing="stop" />
</rewriter>[/xml]
La etiqueta <rewriter> es la que tenemos que respetar, y dentro de ella insertamos tantas etiquetas <rewrite> como páginas distintas tengamos (por ejemplo, en un foro las páginas se podrían distinguir por “posts”, “foros”, “búsqueda”…). En el ejemplo anteriormente mostrado, utilizo las propiedades “url“, “to” y “processing” en tonde:
- url es la URL ya editada (y que por si sola no existe esa página)
- to es la página original y existente
- processing indica que hacer después de la transformación. Yo lo tengo en “stop” y me va bien (lo ví en otros ejemplos)
Como sé que así explicado suena difícil e ilógico, os pongo un código para que lo probeis. En una página llamada default.aspx ponedle un hyperlink que apunte a URLPRUEBA.aspx
[html]<a href="URLPRUEBA.aspx">Go 2 redirect.aspx</a>[/html]
Ahora os creais una página que se llame redirect.aspx, y dentro le poneis lo que querais, un hola mundo o una imagen de Cristina Pedroche
Con eso hecho y el archivo web.config configurado tal y como he descrito en el post, al clickar en el enlace de Go 2 redirect.aspx debería abrirse una página llamada URLPRUEBA.aspx con el contenido que le hayais puesto.
Los usuarios avanzados verán este método bastante inútil, puesto que muchas páginas funcionan con variables, tranquilos, para ello existen las expresiones regulares, pero lo explicaré en otro post, espero no tardar mucho.
Enlaces relacionados:
- Ayuda de url rewriter
Posts relacionados:
Tags (etiquetas): asp.net, Search Engine Optimization, SEO, url amigable, url rewriter, url semántica, url seo


Más de un año después de que escribieras el post, a ver si puedes resolverme una duda:
Me dispongo a modificar una web para que use url amigables, activo el modulo URL rewrite de asp.net en iis y doy de alta todas las reglas en el web.config para que url del tipo: misitio.com/product.aspx?id=456 pase a ser una url amigable del tipo misitio.com/product/456/zanahoria-amarilla
Ok, todo funciona correctamente. Pero con solo esto no consigo nada, ya que todos los enlaces de la web apuntan a url del tipo misitio.com/product.aspx?id=456
Debo modificar manualmente todos los enlaces para que en lugar de funcionar como ahora pasen al modo ?
No hay ninguna opción para automatizar que cuando el sistema reciba una peticion a product.aspx?id=456 automaticamente la modifique?
Gracias.