Asp.Net URL書き換えの具体的な実現


iisを設定しないというと、主にバーチャルホストやiisの操作制限が得られない時に、isapを追加してはいけないし、静的なプログラム実現のような方法を実現したいです。ここで最終的に実現する効果は、最後に使えます。
12345.
置換
show.aspx?id=12345のような住所は訪問します。
百度の空間を実現することもできます。
http://hi.jb51.net/wu1987116
置換
http://hi.jb51.net/index.aspx?UserName=wu1987116
機能は、任意の拡張子と拡張なしに対応します。
プログラムを調整する部分は二つだけです。一つはweb.com figファイルです。二つ目はリンク先です。必要なurlrewrite.dll
まずURLRewriterをダウンロードします。http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
ダウンロードしてインストールしてからbinディレクトリの下でURLRewriter.dllファイルを見つけます。
はい、実施します。第一歩:urlrewrite.dllをあなたのwebプログラムディレクトリにダウンロードします。どこでもいいです。binの中に入れたのです。引用を追加して、urlrewrite.dllを引用します。ステップ2:web.co.nfigを修正するには、いくつかの箇所を修正します。位置が違うので注意してください。
1 web.co nfigファイルに次のコードを入れます。「configration」の下に置くように注意してください。
そのうち

   <configSections>
    <section name="RewriterConfig"type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
  </configSections>
コンフィギュレーション「RewriterConfig」を指定するための処理プログラム類の名前は、「URLRewriter.C.onfig.Rewriter ConfigSerializer Serial Handler」で、binディレクトリ下のURLRewriter.dllファイルに存在します。
2 web.co.figファイルのsystem.webノードに下記のコードを追加します。

<section name="RewriterConfig"
type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
このコードの意味は、ファイルの拡張子を.htmlと任意の拡張子(拡張子なし、*.)を含むので、この位置は上で先に処理されます)のファイルのすべてのHTTP要求をクラスのURLRewriter.Rewriter FactoryHandlerにマッピングし、注意順に上から下に実行します。もしpath=「*」が上にあるなら、下のマッピングは無効です。次のステップでは、そのページにマップする設定があります。
3上書きurl
        1と同じように、ノードの下に置いてあります。
     鍵は

<httpHandlers>
      <add verb="*" path="*.html"
            type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
      <add verb="*" path="*"
            type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
   </httpHandlers>
です。
効果:訪問時http://127.0.0.1/123.html実際に訪れたのはhttp://127.0.0.1/Shownews.aspx?ShowID=123
        アクセスhttp://127.0.0.1/任意の文字の場合、実際にアクセスしたのはhttp://127.0.0.1/blog.aspx?UserName=任意の文字
        注意第2、3ステップのマッピング順序
ここで、キーはurlの変換

<RewriterConfig>
    <Rules>
      <RewriterRule>
        <LookFor>~/(.+).html</LookFor>
        <SendTo>~/Shownews.aspx?ShowID=$1</SendTo>
      </RewriterRule>
      <RewriterRule>
        <LookFor>~/(.+)</LookFor>
        <SendTo>~/blog.aspx?UserName=$1</SendTo>
      </RewriterRule>
    </Rules>
  </RewriterConfig>
である。
最初のパスを別のパスに変えるという意味です。その中の()の正規表現は第二文のパラメータ$1です。
同じく$2$3で<Look For>の第二番目の()のパラメータを表しても良いです。
複数のパラメータ:

<LookFor>~/(.+).html</LookFor>

<SendTo>~/Shownews.aspx?ShowID=$1</SendTo>

ステップ3:ページプログラムでは、こう書くことができます。newsid%>.html「target=」_blank">ニュースのタイトル
上の3つのステップをクリアすれば簡単にURLの書き換えができますが、サイトを公開するとURLの書き換えが無効になります。無効になるとIISを設定する必要があります。マスターディレクトリ->>>>>「挿入」ワイルドカードアプリケーションのマッピングをクリックして、「\WINDOWS\Microsoft.NET\Frame ebook」を選択します。isapi.dll」はチェックを外して確定します。上の設定が終わったら、正常に閲覧できます。