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 アドレス マッピング - 疑似静的 キーワード: 疑似静的、ウェブマスター、ウェブサイト、ウェブサイトのプロモーション、収益化 |
8月16日のWebmaster Network(www.admin5.com)によると、オンラインビ...
「2012年、中国の医薬品B2Cの年間規模は16億6500万元に達した。」中国オンライン薬局協議会が...
「商品に自信があるなら、百度入札プロモーションをやろう!」これは、ロビン・リーが百度入札商品を位置づ...
中国のネットユーザー数が増え続けるにつれ、インターネットコンテンツの品質に対する要求も高まっている。...
この記事はWeChatの公開アカウント「The Calm Programmer」から転載したものです...
鶏はモンスターです: Dell r810、64 論理コア、512 GB RAM、SSD S「言葉では...
10月21日、51クレジットカードが突然大手メディアの見出しを飾りました。浙江省警察は数百人の警官を...
世界的に有名な高防御サーバーブランドであるSharktechは、Xeon Silver 4114、X...
企業はインターネットの重要性をますます認識するようになり、インターネットを第二の人生のようにしっかり...
ここでは、IT 管理者が不意を突かれるクラウド コンピューティングの 8 つの側面について説明します...
Gold Digger がウェブサイトを立ち上げてから 1 年以上経ちました。この 1 年間、他のブ...
10 年間運営されているカナダの企業 Servarica が、新しい製品「GPU VPS」を開発しま...
3月27日、北京でSmartisan ROMの発表会が開催され、創設者のLuo Yonghao氏が主...
12月21日、アリババクラウドは自社開発の神龍アーキテクチャをベースにしたRDMA強化インスタンス、...
導入近年、コンテナは、あらゆる環境で実行できること、オーバーヘッドが低いこと、数秒で起動できること、...