asp.netはiisを設置しなくてもいいです。url書き換えの擬似静的ルートを実現します。
プログラムを調整する部分は二つだけです。一つは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.figファイルに下記のコードを入れます。「configration」の下に置くように注意してください。
2 web.com figファイルにsystem.webノードに下記のコード
このコードの意味は、ファイルの拡張子を.htmlと任意の拡張子(拡張子なし、*.)を含むので、この位置は上で先に処理されます)のファイルのすべてのHTTP要求をクラスのURLRewriter.Rewriter FactoryHandlerにマッピングし、注意順に上から下に実行します。もしpath=「*」が上にあるなら、下のマッピングは無効です。次のステップでは、そのページにマップする設定があります。
3上書きurl
1と同じように、ノードの下に置いてあります。
肝心な点は
アクセスhttp://127.0.0.1/任意の文字の場合、実際にアクセスしたのはhttp://127.0.0.1/blog.aspx?UserName=任意の文字
注意第2、3ステップのマッピング順序
キーがurlで変換される()の正規表現は第二文のパラメータ$1です。
同じく$2$3で<Look For>の第二番目の()のパラメータを表しても良いです。
複数のパラメータ:
まず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.figファイルに下記のコードを入れます。「configration」の下に置くように注意してください。
<connectionStrings/> <system.web>
<configSections>
<section name="RewriterConfig"type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
のうち、
<section name="RewriterConfig"
type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
は、「RewriterConfig」という設定セクションを指定するための処理プログラム類の名前は「URLRewriter.Config.Rewriter ConfigSerialzerSection Handler」であり、このクラスはbinディレクトリの下のURLRewriter.dllファイルに存在する。2 web.com figファイルにsystem.webノードに下記のコード
<httpHandlers>
<add verb="*" path="*.html"
type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*"
type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
を追加する。このコードの意味は、ファイルの拡張子を.htmlと任意の拡張子(拡張子なし、*.)を含むので、この位置は上で先に処理されます)のファイルのすべてのHTTP要求をクラスのURLRewriter.Rewriter FactoryHandlerにマッピングし、注意順に上から下に実行します。もしpath=「*」が上にあるなら、下のマッピングは無効です。次のステップでは、そのページにマップする設定があります。
3上書きurl
1と同じように、ノードの下に置いてあります。
肝心な点は
<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>
効果:訪問時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で変換される
<LookFor>~/(.+).html</LookFor>
<SendTo>~/Shownews.aspx?ShowID=$1</SendTo>
は、最初の経路を別の経路に変換することを意味する。その中の同じく$2$3で<Look For>の第二番目の()のパラメータを表しても良いです。
複数のパラメータ:
<ReWriterUrls>
<rule>
<old>(.*)/TestUrlRe/file(.*)/(.*)\.html</old>
<new>../WebForm1.aspx?id=$2&type=$3</new>
</rule>
<rule>
<old>(.*)/TestUrlRe/t(.*)/(.*)\.html</old>
<new>../WebForm1.aspx?tid=$2&ttype=$3</new>
</rule>
</ReWriterUrls>
ステップ3:ページプログラムでは、このように書くことができます。
<a href="news_<%=newsid%>.html" target="_blank"> </a>
上の3つのステップをクリアすれば簡単にURLの書き換えができますが、サイトを公開するとURLの書き換えが無効になります。無効になるとIISを設定する必要があります。マスターディレクトリ->>>>>「挿入」ワイルドカードアプリケーションのマッピングをクリックして、「\WINDOWS\Microsoft.NET\Frame ebook」を選択します。isapi.dll」はチェックを外して確定します。上の設定が終わったら、正常に閲覧できます。