Tutorial de ASP.NET
Vista Previa de ASP.NET 2.0

Mapeo URL

La característica de Mapero URL (URL Mapping) utiliza información de configuración almacenada en web.config para redireccionar  las peticiones entrantes a una URL diferente. El redireccionamiento se produce antes que cualquier otro procesamiento de peticiones entrantes. Aunque el siguiente ejemplo muestra el redireccionamiento de una petición de una página, podemos redireccionar una petición de cualquier tipo de fichero a una URL diferente.
<a name="remapping">

Definiendo URL Redireccionadas

La información de configuración para el Mapeo URL se almacena en web.config. Cada elemento <add> anidado dentro del elemento <urlMappings> define una regla para redireccionar una url entrante. El atributo url define el valor exacto de la url entrante con la que la función de Mapeo URL tiene que intentar encajar. Si se produce una coincidencia, la URL entrante se reescribe con el valor del atributo mappedUrl. Observad que esta característica no soporta más reglas avanzadas como "widcards"o expresiones regulares.

El web.config de ejemplo define reglas de mapeo para un número de urls. El fichero web.sitemap del ejemplo define la mayor parte de sus nodos con valores de URL que serán redireccionadas. Como resultado, la combinación del Mapeo URL y la Navegación de Sitio permite a los desarrolladores definir una estructura de navegación en términos de urls "amistosas", mientras usamos Mapeo URL para reescribir peticiones a un grupo diferente de páginas que realizan un procesado real.

Cuando ejecutéis el ejemplo, observad cómo los controles Menu y TreeView muestran los datos de navegación basándose en la estructura del sitio definida en el fichero web.sitemap. Si nos movemos sobre cualquiera de los enlaces del control TreeView o del control SiteMapPath de la esquina superior derecha, la url que se muestra en la barra de estado es una url "amistosa". Al hacer click sobre cualquiera de los enlaces de navegación, la página real que se ejecuta es Default.aspx. Sin embargo, la información de navegación en los controles Menu, TreeView y SiteMapPath continua mostrando una estructura de URL "amistosas".

Al final de la página también podemos ver los valores devueltos por Request.Path, Request.QueryString["category"], and Request.RawUrl. Los valores de Request.Path  y Request.QueryString["category"] siempre reflejan los resultados de redireccionar una url entrante. Sin embargo, el valor para Request.RawUrl muestra la url "amistosa" antes del redireccionamiento. La característica de Navegación de Sitio siempre utiliza Request.RawUrl cuando intenta comprobar la coincidencia entre la información de la url y los datos del fichero sitemap. Si no se encuentra ningún valor que coincida, el XmlSiteMapProvider utiliza Request.Path en su lugar. En este ejemplo, todas las url "amistosas" tienen una entrada en el fichero --, de forma que los controles que utilizan la Navehación de Sitio siempre muestran y hacen referencia a nodos en la url "amistosa"

C# mapeo Url