URLRewriterによるurlアドレスの書き換え-擬似静的実現

6673 ワード

まず、もちろんURLRewriterをダウンロードします
download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi  

インストールをダウンロードしてからbinディレクトリの下でURLRewriterを見つけます.dllファイル
  • はwebにあります.configファイルには、次のコード
  • が追加されています.
    <configuration>
      <configSections>
        <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
      configSections>
    
    configuration>

    コンフィギュレーションセクション"RewriterConfig"を指定するためのハンドラクラスの名前は"URLRewriter.Config.R e w r i t e r C o n f i g SerializerSectionHandler」というクラスはbinディレクトリの下のURLRewriterに存在する.dllファイル内
  • はwebにあります.configファイルのsystem.Webノードの下には、次のコード
  • が追加されます.
    <httpHandlers>
          <add verb="*" path="*.html"
               type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
       httpHandlers>

    このコードは、ファイルの拡張子を.htmlのファイルのすべてのHTTP要求はクラスURLRewriterにマッピングされる.RewriterFactoryHandlerは具体的にMSDNを見ることができます.自分のビジネスに基づいてpathのパラメータを変更することができます.verbはPOST GETなどの要求方法を表します.
  • URL
  • を書き換える.
    2つの方法があります
    1.Web.configにノードを追加して新しいconfigファイルをロードして構成する
    <RewriterConfig configSource="URLRewriter.config"/>

    そしてディレクトリの下にURLRewriterを新規作成する.configファイル
    
    <RewriterConfig>
      <Rules>
        <RewriterRule>
          <LookFor>~/admin/keyworddetail/(.+)\.aspxLookFor>
          <SendTo>~/admin/keyworddetail.aspx?kwpkid=$1SendTo>
        RewriterRule>
        <RewriterRule>
          <LookFor>~/admin/testsubject/(.+)\.aspxLookFor>
          <SendTo>~/admin/testsubject.aspx?tstpkid=$1SendTo>
        RewriterRule>
      Rules>
    RewriterConfig>

    2.webを置く.configのノードの下
    <RewriterConfig>
      <Rules>
        <RewriterRule>
          <LookFor>~/admin/keyworddetail/(.+)\.aspxLookFor>
          <SendTo>~/admin/keyworddetail.aspx?kwpkid=$1SendTo>
        RewriterRule>
        <RewriterRule>
          <LookFor>~/admin/testsubject/(.+)\.aspxLookFor>
          <SendTo>~/admin/testsubject.aspx?tstpkid=$1SendTo>
        RewriterRule>
      Rules>
    RewriterConfig>

    最初のパスを別のパスに変えるという意味です.ここで()の正規表現は第2文のパラメータ$1である.
    中2番目の3番目の()のパラメータも同様に2 3で表すことができる.
    もしあなたのページに返信があれば.例えばDATAGRIDを置いて、ページングがあって、あなたは次のページに着いて発見して、気絶して、また問題が発生しました.どうすればいいのかというと、実はマイクロソフトのサイトで、ここで簡単に説明しました.
    フォームエコー保持のコンポーネントを追加:ダウンロードしたアイテムからActionlessFormを見つけます.dllはあなたのプロジェクトbinディレクトリの下に置きます.次のページに追加します.
    "skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>
    を次のように変更します.
    <skm:Form id="     " method="post" runat="server">
    .....
    skm:Form>

    msdn公式ドキュメント以上