Plötzlich entdeckte ich, dass ASP.NET 2.0 selbst natürliche Unterstützung für UrlMapping bietet – den Abschnitt <urlMappings> in der Datei web.config. Ich bedauerte, dass das Schreiben von Programmen heutzutage wirklich keine technische Aufgabe mehr ist.
<?xml version="1.0"?>
<Konfiguration>
<system.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>
Diese Konfiguration ermöglicht es dem ASP.NET-Programm, UrlMapping im ASP.NET Development Server direkt zu unterstützen (d. h. das Dateisystem beim Erstellen eines ASP.NET-Projekts auszuwählen), weist jedoch mehrere Mängel auf:
1. Es können nur feste Adressen zugeordnet werden, daher kann nur eine Adresse konfiguriert werden.
2. Es besteht keine Notwendigkeit, in ASP.NET Development Server etwas anderes zu konfigurieren. Aufgrund des Anforderungs-Antwort-Modells in IIS wird davon ausgegangen, dass die Zuordnung in IIS eingerichtet werden muss. In diesem Fall suchte ich überall nach Informationen, wie man die Zuordnung in ASP.NET Development Server einrichtet, aber das Ergebnis war, dass es nicht funktionierte.
Angesichts des Nachteils von UrlMapping, dass es keine regulären Ausdrücke unterstützt, habe ich ein UrlMapping erstellt, das reguläre Ausdrücke unterstützt. Da UrlMapping von HttpApplication aufgerufen wird und HttpApplication intern ist, kann es damit leider nichts anfangen, sodass die Implementierung unzuverlässig ist . Laden Sie im Vergleich zu UrlMapping
eine zusätzliche <Section>-Datei in Web.config herunter (die heruntergeladene Datei enthält die RegexUrlMapping-Komponente und ein Beispiel-ASP.NET). Beachten Sie, dass das ASP.NET-Programm in IIS bereitgestellt und die Zuordnung festgelegt werden muss Die Methode ist: Klicken Sie mit der rechten Maustaste auf das virtuelle Verzeichnis, wählen Sie „Eigenschaften“, wählen Sie „Konfiguration“, fügen Sie einen Verweis auf „c:windowsmicrosoft.netframeworkv2.0.50727aspnet_isapi.dll“ in der Wildcard-Anwendungszuordnung hinzu und entfernen Sie den Haken Bestätigen Sie, ob die Datei vorhanden ist. Um faul zu sein, verwende ich Platzhalter, um alles der ISAPI von ASP.NET 2.0 zuzuordnen. In der tatsächlichen Entwicklung ist es am besten, bei Bedarf spezifischere Zuordnungen hinzuzufügen.
Die Konfigurationsbeispiele in Web.config sind wie folgt:
<?xml version="1.0"?>
<Konfiguration>
<configSections>
<section name="RegexUrlMappings" type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingsSection,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</configSections>
<RegexUrlMappings aktiviert="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>
<system.web>
<httpModules>
<add name="RegexUrlMappingModule" type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingModule,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</httpModules>
<compilation debug="true"/>
<authentication mode="Windows"/>
</system.web>
</configuration>
Das Attribut „enabled“ von RegexUrlMapping wird zum Öffnen und Schließen der Zuordnung verwendet. Informationen zu rebaseClientPath finden Sie im Parameter rebaseClientPath in HttpContext.RewritePath.
<add> wird zum Hinzufügen von Zuordnungsregeln verwendet, url ist das reguläre Ausdrucksmuster, das mit dem Pfad übereinstimmt, und mappedUrl ist die Ersetzungsregel. Zur Verwendung siehe die Regex.Replace-Methode. Im obigen Beispiel definiert das erste Hinzufügen Gruppe 1 mit Klammern in der URL, also später in der Referenz $1
Das zweite Add verwendet (?<id>) in der URL, um die Gruppen-ID zu definieren, und verwendet dann ${id}, um auf die Gruppe zu verweisen. Das dritte ist das Ersetzen fester Zeichenfolgen. Es scheint, dass reguläre Ausdrücke immer noch sehr wichtig
sind ://www.cnblogs.com/thinhunan/archive/2006/08/22/regexurlmapping.html