De repente, descobri que o próprio ASP.NET 2.0 fornece suporte natural para UrlMapping - a seção <urlMappings> no arquivo web.config. Lamentei que escrever programas não seja realmente um trabalho técnico hoje em dia.
<?xml versão="1.0"?>
<configuração>
<sistema.web>
<urlMapeamentos>
<add url="~/2006/07" mappedUrl="~/Month.aspx?year=2006&month=01"/>
<add url="~/2006/08" mappedUrl="~/Month.aspx?year=2006&month=02"/>
</urlMappings>
<compilação debug="true"/>
</system.web>
</configuração>
Essa configuração permite que o programa ASP.NET ofereça suporte direto ao UrlMapping no servidor de desenvolvimento ASP.NET (ou seja, selecione o sistema de arquivos ao construir um projeto ASP.NET), mas tem várias deficiências:
1. Somente endereços fixos podem ser mapeados, portanto apenas um endereço pode ser configurado.
2. Não há necessidade de configurar mais nada no ASP.NET Development Server. Devido ao modelo de resposta de solicitação no IIS, estima-se que o mapeamento precise ser configurado no IIS. Nesse caso, eu estava procurando informações em todos os lugares para ver como configurar o mapeamento no ASP.NET Development Server, mas o resultado foi que não funcionou.
Tendo em vista a deficiência do UrlMapping de não suportar expressões regulares, fiz um UrlMapping que suporta expressões regulares. Infelizmente, como o UrlMapping é chamado por HttpApplication e HttpApplication é interno, ele não pode fazer nada com ele, portanto a implementação não é confiável. . Em comparação com UrlMapping,
baixe um arquivo <Section> adicional em Web.config (o arquivo baixado inclui o componente RegexUrlMapping e um exemplo de ASP.NET. Observe que o programa ASP.NET precisa ser implantado no IIS e o mapeamento deve ser definido . O método é clicar com o botão direito do mouse no diretório virtual, selecionar Propriedades, selecionar Configuração, adicionar uma referência a c:windowsmicrosoft.netframeworkv2.0.50727aspnet_isapi.dll no mapeamento do aplicativo curinga e remover o gancho para. para confirmar se o arquivo existe, aqui está Para ser preguiçoso, eu uso curingas para mapear tudo para o ISAPI do ASP.NET 2.0. No desenvolvimento real, é melhor adicionar mapeamentos mais específicos conforme apropriado)
Os exemplos de configuração no Web.config são. do seguinte modo:
<?xml versão="1.0"?>
<configuração>
<seções de configuração>
<section name="RegexUrlMappings" type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingsSection,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</configSections>
<RegexUrlMappings habilitado="true" rebaseClientPath="true">
<add 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>
<add name="RegexUrlMappingModule" type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingModule,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</httpMódulos>
<compilação debug="true"/>
<modo de autenticação="Windows"/>
</system.web>
</configuration>
O atributo habilitado de RegexUrlMapping é usado para abrir e fechar o mapeamento. Para rebaseClientPath, consulte o parâmetro rebaseClientPath em HttpContext.RewritePath.
<add> é usado para adicionar regras de mapeamento, url é o padrão de expressão regular que corresponde ao caminho e mappedUrl é a regra de substituição. Para uso, consulte o método Regex.Replace. No exemplo acima, a primeira adição define o grupo 1 com. parênteses no URL, então na Referência posterior $1
A segunda adição usa (?<id>) na URL para definir o ID do grupo e, em seguida, usa ${id} para referenciar o grupo. A terceira é a substituição de string fixa. Parece que as expressões regulares ainda são muito importantes ~~
http. ://www.cnblogs.com/thinhunan/archive/2006/08/22/regexurlmapping.html