De repente descubrí que ASP.NET 2.0 proporciona soporte natural para UrlMapping: la sección <urlMappings> en el archivo web.config. Lamenté que escribir programas no sea realmente un trabajo técnico hoy en día.
<?xml versión="1.0"?>
<configuración>
<sistema.web>
<asignaciones de URL>
<add url="~/2006/07" mappedUrl="~/Month.aspx?year=2006&month=01"/>
<add url="~/2006/08" mappedUrl="~/Month.aspx?year=2006&month=02"/>
</urlMappings>
<compilación depuración="true"/>
</sistema.web>
</configuración>
Esta configuración permite que el programa ASP.NET admita directamente UrlMapping en el servidor de desarrollo ASP.NET (es decir, seleccione el sistema de archivos al crear un proyecto ASP.NET), pero tiene varias deficiencias:
1. Solo se pueden asignar direcciones fijas, por lo que solo se puede configurar una dirección.
2. No es necesario configurar nada más en ASP.NET Development Server. Debido al modelo de respuesta a solicitudes en IIS, se estima que es necesario configurar el mapeo en IIS. En este caso, estuve buscando información por todas partes para ver cómo configurar el mapeo en ASP.NET Development Server, pero el resultado fue que no funcionó.
En vista de la deficiencia de UrlMapping de que no admite expresiones regulares, hice un UrlMapping que admite expresiones regulares. Desafortunadamente, debido a que HttpApplication llama a UrlMapping y HttpApplication es interno, no puede hacer nada con él, por lo que la implementación no es confiable. En comparación con UrlMapping,
descargue un archivo <Section> adicional en Web.config (el archivo descargado incluye el componente RegexUrlMapping y un ASP.NET de muestra. Tenga en cuenta que el programa ASP.NET debe implementarse en IIS y la asignación debe configurarse. El método es hacer clic con el botón derecho en el directorio virtual, seleccionar Propiedades, seleccionar Configuración, agregar una referencia a c:windowsmicrosoft.netframeworkv2.0.50727aspnet_isapi.dll en la asignación de la aplicación comodín y eliminar el enlace a. confirme si el archivo existe, aquí está Para ser vago, uso comodines para asignar todo al ISAPI de ASP.NET 2.0. En el desarrollo real, es mejor agregar asignaciones más específicas según corresponda)
Los ejemplos de configuración en Web.config son. como sigue:
<?xml versión="1.0"?>
<configuración>
<secciones de configuración>
<sección nombre="RegexUrlMappings" tipo="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingsSection,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</configSections>
<RegexUrlMappings habilitado="true" rebaseClientPath="true">
<añadir url="(d+)$" mappedUrl="default.aspx?id=$1"/>
<add url="(?<=/)(?<id>[az]+)$" mappedUrl="default.aspx?id=${id}" />
<add url="/$" mappedUrl="/default.aspx?id=0"/>
</RegexUrlMappings>
<sistema.web>
<httpMódulos>
<añadir nombre="RegexUrlMappingModule" tipo="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingModule,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</httpModules>
<compilación depuración="true"/>
<modo de autenticación="Windows"/>
</sistema.web>
</configuration>
El atributo habilitado de RegexUrlMapping se usa para abrir y cerrar la asignación. Para rebaseClientPath, consulte el parámetro rebaseClientPath en HttpContext.RewritePath.
<add> se usa para agregar reglas de mapeo, url es el patrón de expresión regular que coincide con la ruta y mappedUrl es la regla de reemplazo. Para su uso, consulte el método Regex.Replace. En el ejemplo anterior, el primer complemento define el grupo 1 con. paréntesis en la URL, por lo que en Referencia más adelante $1
El segundo complemento usa (?<id>) en la URL para definir la identificación del grupo y luego usa ${id} para hacer referencia al grupo. El tercero es el reemplazo de cadenas fijas. Parece que las expresiones regulares siguen siendo muy importantes ~~
http. //www.cnblogs.com/thinhunan/archive/2006/08/22/regexurlmapping.html