Reescribiendo las URLs de nuestro sitio web
Las 2 razones que conozco para reescribir las URLs de nuestras aplicaciones Web son:
- Aportar un poco más de seguridad nuestro sitio web para que el usuario no conozca a simple vista el nombre de nuestras páginas aspx.
- Para mejorar la indexación de nuestra en página en buscadores.
Podemos echar mano de una herramienta bastante fácil de usar para realizar esta labor:
URL Rewriter for .NET / IIS / ASP.NET
Una vez descargada, los pasos que he seguido para emplearla en mis aplicaciones han sido estos:
- Configurarla (Aunque en la Web dice que no hace falta, en mi ejemplo sin condigurarla no me ha funcionado) en mi equipo de desarrollo (Windows XP - Visual Studio 2003 v1.1.4322):
Ejecutable: C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
Extensión: .*
Desmarcar el check Comprobar si el archivo existe
- Añadir al Web.Config estas líneas, la sección de configuración, el elemento rewriter (Donde especificaremos como se van a reescribir las URLs) y el módulo http:
1: <?xml version="1.0" encoding="utf-8" ?>
2: <configuration>
3: <configSections>
4: <section
5: name="rewriter"
6: type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler,
7: Intelligencia.UrlRewriter" />
8: </configSections>
9: <rewriter>
10: <rewrite url="Clientes/(.+)" to="~/Clientes.aspx?idcliente=$1" />
11: </rewriter>
12: <system.web>
13: <httpModules>
14: <add type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"
15: name="UrlRewriter" />
16: </httpModules>
- Si nos fijamos en el elemento rewrite, nos permite especificarle en su atributo url expresiones regulares, para no tener que estar especificando una a una todas las páginas de los clientes y así procesará todas las páginas que cumplan ese patrón, en mi caso, le estoy especificando que cuando la URL de la petición sea del tipo Clientes/lo que sea la reescriba a Clientes.aspx?idcliente=lo que sea con lo cual el cliente nunca sabrá a que página está llamando, porqué esta reescritura de la URL se hace en el servidor con lo cual para el cliente esto es transparente.
Si ejecutamos la aplicación:
Como véis, es sencillo de utilizar y desde mi punto de vista muy portente, para más info:
http://urlrewriter.net/index.php/support/reference/
Salu2