Soudain, j'ai découvert qu'ASP.NET 2.0 lui-même fournit un support naturel pour UrlMapping - la section <urlMappings> du fichier web.config. J'ai déploré que l'écriture de programmes ne soit vraiment pas un travail technique de nos jours.
<?xml version="1.0"?>
<configuration>
<système.web>
<urlMappings>
<add url="~/2006/07" mappedUrl="~/Month.aspx?year=2006&month=01"/>
<add url="~/2006/08" mappedUrl="~/Month.aspx?year=2006&month=02"/>
</urlMappings>
<compilation debug="true"/>
</system.web>
</configuration>
Cette configuration permet au programme ASP.NET de prendre directement en charge UrlMapping dans le serveur de développement ASP.NET (c'est-à-dire de sélectionner le système de fichiers lors de la création d'un projet ASP.NET), mais elle présente plusieurs inconvénients :
1. Seules les adresses fixes peuvent être mappées, donc une seule adresse peut être configurée.
2. Il n'est pas nécessaire de configurer quoi que ce soit d'autre dans le serveur de développement ASP.NET. En raison du modèle de réponse aux demandes dans IIS, il est estimé que le mappage doit être configuré dans IIS. Dans ce cas, je cherchais des informations partout pour savoir comment configurer le mappage dans ASP.NET Development Server, mais le résultat était que cela n'a pas fonctionné.
Compte tenu du défaut d'UrlMapping qui ne prend pas en charge les expressions régulières, j'ai créé un UrlMapping qui prend en charge les expressions régulières. Malheureusement, comme UrlMapping est appelé par HttpApplication et que HttpApplication est interne, il ne peut rien faire avec, donc l'implémentation n'est pas fiable. . Par rapport à UrlMapping,
téléchargez un fichier <Section> supplémentaire dans Web.config (le fichier téléchargé inclut le composant RegexUrlMapping et un exemple d'ASP.NET. Notez que le programme ASP.NET doit être déployé dans IIS et que le mappage doit être défini. La méthode consiste à cliquer avec le bouton droit sur le répertoire virtuel, à sélectionner Propriétés, à sélectionner Configuration, à ajouter une référence à c:windowsmicrosoft.netframeworkv2.0.50727aspnet_isapi.dll dans le mappage d'application générique et à supprimer le hook. confirmez si le fichier existe, voici Pour être paresseux, j'utilise des caractères génériques pour tout mapper à l'ISAPI d'ASP.NET 2.0. Dans le développement réel, il est préférable d'ajouter des mappages plus spécifiques, le cas échéant)
Les exemples de configuration dans Web.config sont. comme suit:
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="RegexUrlMappings" type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingsSection,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</configSections>
<RegexUrlMappings activé="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>
<système.web>
<Moduleshttp>
<add name="RegexUrlMappingModule" type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingModule,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</httpModules>
<compilation debug="true"/>
<mode d'authentification="Windows"/>
</system.web>
</configuration>
L'attribut activé de RegexUrlMapping est utilisé pour ouvrir et fermer le mappage. Pour rebaseClientPath, veuillez vous référer au paramètre rebaseClientPath dans HttpContext.RewritePath.
<add> est utilisé pour ajouter des règles de mappage, url est le modèle d'expression régulière qui correspond au chemin et mappedUrl est la règle de remplacement. Pour son utilisation, voir la méthode Regex.Replace. Dans l'exemple ci-dessus, le premier ajout définit le groupe 1 avec. parenthèses dans l'url, donc dans la référence plus tard $1
Le deuxième ajout utilise (?<id>) dans l'URL pour définir l'identifiant du groupe, puis utilise ${id} pour référencer le groupe. Le troisième est le remplacement de chaîne fixe. Il semble que les expressions régulières soient toujours très importantes ~~
http. http://www.cnblogs.com/thinhunan/archive/2006/08/22/regexurlmapping.html