突然、ASP.NET 2.0 自体が URLMapping (web.config ファイルの <urlMappings> セクション) を自然にサポートしていることに気づき、今ではプログラムを書くのは実際には技術的な仕事ではないことを嘆きました。
<?xml バージョン="1.0"?>
<構成>
<システム.ウェブ>
<urlマッピング>
<add url="~/2006/07" mappedUrl="~/Month.aspx?year=2006&month=01"/>
<add url="~/2006/08" mappedUrl="~/Month.aspx?year=2006&month=02"/>
</urlMappings>
<コンパイルデバッグ="true"/>
</system.web>
</設定>
この構成により、ASP.NET プログラムは ASP.NET 開発サーバーで UrlMapping を直接サポートできます (つまり、ASP.NET プロジェクトの構築時にファイル システムを選択します)。ただし、いくつかの欠点があります。
1. 固定アドレスのみをマッピングできるため、設定できるアドレスは 1 つだけです。
2. ASP.NET 開発サーバーでは他に何も設定する必要はありません。IIS の要求応答モデルのため、IIS でマッピングを設定する必要があると考えられます。この場合、ASP.NET 開発サーバーでマッピングを設定する方法を確認するためにあらゆる情報を探しましたが、結果は機能しませんでした。
正規表現をサポートしていないという UrlMapping の欠点を考慮して、正規表現をサポートする UrlMapping を作成しました。残念ながら、UrlMapping は HttpApplication によって呼び出され、HttpApplication は Internal であるため、それを使用して何もできないため、実装は信頼できません。 UrlMapping と比較して、
Web.config に追加の <Section> ファイルをダウンロードします (ダウンロードされたファイルには RegexUrlMapping コンポーネントとサンプル ASP.NET が含まれています。ASP.NET プログラムを IIS に展開し、マッピングを設定する必要があることに注意してください)方法は、仮想ディレクトリを右クリックし、[プロパティ]、[構成] の順に選択し、ワイルドカード アプリケーション マッピングに c:windowsmicrosoft.netframeworkv2.0.50727aspnet_isapi.dll への参照を追加し、フックを削除します。ファイルが存在するかどうかを確認します。面倒なので、ワイルドカードを使用してすべてを ASP.NET 2.0 の ISAPI にマッピングします。実際の開発では、必要に応じてより具体的なマッピングを追加するのが最善です)
。Web.config の構成例は次のとおりです。次のように:
<?xml バージョン="1.0"?>
<構成>
<configセクション>
<section name="RegexUrlMappings" type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingsSection,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</configセクション>
<RegexUrlMappings Enabled="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>
<システム.ウェブ>
<httpモジュール>
<add name="RegexUrlMappingModule" type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingModule,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</httpモジュール>
<コンパイルデバッグ="true"/>
<認証モード="Windows"/>
</system.web>
rebaseClientPath
パラメータを参照してください。
<add> はマッピング ルールを追加するために使用され、url はパスに一致する正規表現パターン、mappedUrl は置換ルールを参照してください。上の例では、最初の add はグループ 1 を定義します。 URL に括弧があるため、後の参照では $1
2 番目の追加は、URL で (?<id>) を使用してグループ ID を定義し、次に ${id} を使用してグループを参照します。正規表現は依然として非常に重要のようです~~
http。 ://www.cnblogs.com/thinhunan/archive/2006/08/22/regexurlmapping.html