asp.net アドレス マッピングの定義は、ユーザーがアクセスする仮想アドレスにマップされた実際のファイルであり、仮想アドレスは静的ページである可能性があります。 Ruli: http://fuzhou.naoqiu.com/bus のページにアクセスすると、実際には /bus.aspx のページにアクセスしていることになります。 Asp.net アドレス マッピングは、HttpModule 要求原則を通じて機能します。 httpModule の原理は何ですか? HttpModule コンテナでの HTTP リクエストの送信プロセス中に、HTTP リクエストは特定の瞬間 (ResolveRequestCache イベント) に HttpHandler コンテナに渡されます。このイベントの後、HttpModule コンテナーは HttpHandler のエントリ インスタンスを確立しますが、この時点では HTTP 要求の制御は渡されず、AcquireRequestState イベントと PreRequestHandlerExcute イベントが引き続きトリガーされます。 PreRequestHandlerExcute イベントの後、HttpModule ウィンドウは、実際の HTTP 要求処理を実行するために、一時的に HttpHandler コンテナーに制御を渡します。 ProcessRequest メソッドは、HTTP リクエストを処理するために HttpHandler コンテナ内で実行されます。コンテナ HttpHandler は HTTP 要求全体を処理した後、制御を HttpModule に返し、HttpModule はクライアントに戻るまで、処理された HTTP 要求情報フローをレイヤーごとに転送し続けます。 ブロガーから借りた写真 原理を理解した後、簡単なアドレス マッピングを完成させます。コードは次のとおりです。 まず、アドレス マッピングの基本クラスを完成させます。 ///<要約> /// アドレス書き換え /// </要約> パブリック抽象クラス BaseModuleRewriter: IHttpModule { /// <要約> /// 初期化呼び出し /// </要約> /// <param name="app"></param> パブリック仮想void Init(HttpApplicationアプリ) { app.BeginRequest += 新しい EventHandler(app_BeginRequest); } パブリック仮想 void Dispose() { } /// <要約> /// リクエスト開始 /// </要約> /// <param name="送信者"></param> /// <パラメータ名="e"></パラメータ> 保護された仮想 void app_BeginRequest(オブジェクト送信者、EventArgs e) { HttpApplication app = sender を HttpApplication として指定します。 書き換え(アプリ); } /// <要約> /// 抽象操作メソッド /// </要約> /// <param name="app"></param> 保護された抽象 void Rewrite(HttpApplication app); } 基本クラスを継承し、必要なアドレス マッピング操作を完了します。 保護されたオーバーライド void Rewrite(HttpApplication app) { HttpContext コンテキスト = app.Context; HttpRequest リクエスト = app.Request; 文字列部分 = Regex.Match(request.Url.ToString(), @"(?<=http\:\/\/).*").Value.ToLower().Trim('/'); (part.IndexOf("/") == -1の場合) { part = Regex.Match(part, @"^\w+").Value; スイッチ(部品) { case "bus": context.RewritePath("/bus.aspx"); break; 「www」の場合: case "naoqiu": context.RewritePath("/Default.aspx"); break; デフォルト: context.RewritePath("/Index_City.aspx"); break; } } } 何かが足りないのでしょうか? はい、構成ファイルが足りません。 web.config ファイル内のいくつかの場所を変更する必要があります。コードは次のとおりです。 <!--リクエストルール--> <httpモジュール> <add name="BianminModuleRewriter" </httpモジュール> <システム.Webサーバー> <ハンドラ> <デフォルトドキュメント> <ファイル> <クリア /> <値を追加="default.aspx" /> </ファイル> </defaultDocument> </system.webServer> 注意:framewore 2..0を使用する場合は、\aspnet_isapi.dllファイルパスを変更する必要があります。 ソースコードのダウンロードアドレス: http://download.naoqiu.com ダウンロード 元のタイトル: asp.net アドレス マッピング - 疑似静的 キーワード: 疑似静的、ウェブマスター、ウェブサイト、ウェブサイトのプロモーション、収益化 |
Dogyun は労働者の日のために特別なイベントを開催しました。ラッキーホイールでは、毎日コード、ト...
最近、Tianya の投稿をフォローしています。約 2,000 ページの長さですが、まだ終わっていま...
突然、Weiboにニュースが載りました:蒼井そらが下着を販売しています!驚きました、本当に驚きました...
justhost から良いニュースが届きました: (1) すべての VPS は、トラフィック制限なし...
改めて speedykvm を強くお勧めします! 2017 年に設立された VPS マーチャントであ...
WebRank SEO は、Google ブラウザ用の越境電子商取引プラグインです。 Alexa ラ...
市場調査会社Omdiaの新しいレポートによると、ITベンダーはかつて企業にクラウド技術を提供し、統合...
1. Ingress の紹介Ingress は、外部リクエストをクラスター内のサービスに送信する K...
クラウド コンピューティングは、コンピューティング、ストレージ、ネットワーク インフラストラクチャを...
この記事は、外部リンクの総合的な構築を探求することを目的としています。フォームを作成して共有しました...
[[381381]]新型コロナウイルス感染症からの回復にあたり、私たちは都市を再考する機会を得ていま...
まず、私は IT 担当者でもなければ、プロのライターでもありません。Baidu が私を中傷したように...
記者は5月9日、世界最大のデータベースカンファレンスであるACM SIGMODの公式サイトから、Al...
学生の中には、検索エンジンによって SEO 最適化作業にどのような違いがあるのかとよく質問する人...
この記事はWeChatの公開アカウント「Hacker Afternoon Tea」から転載したもので...