asp.net 2.0 urlは単純な実装を書き換えます

今日、私はそれを考えて書き換え、URL書き換えについての質問を頼まれたグループは、私はおそらく三つの方法、見てきたナショナルデーの間に関連する記事を読んで覚えて、MSDN導入、最も一般的なのは、Microsoftが提供するDLLファイルです今日、多くの問題が生じ、ビットファイル構成を説明するためによると、私は少しを引用DLLが、.csファイルのソースコードのデバッグを見つけることができない、私は、学生が現れ何が長すぎるのdllを置く可能性のある問題を知りません... 。2.0年、突然、その後-_-#、および新しいDLLについてインターネットを検索しなければならなかった、デモを行うには半分の夜を過ごすための新しい方法を見つけました!!
次はデモのソースコードです:プロジェクトのみ2つのページ(Default.aspxを、ユーザー.aspx(直接Response.Writeを(場合、Request.QueryString [ "useridは"]))
Application_BeginRequest(SENDERオブジェクト、のEventArgs E)ボイド保護
    {
        文字列suffixUrl、ラストURL、NEWURL = String.Emptyをは、ユーザーID = String.Emptyをを、
        ラストURLは、要求を=。 RawUrl;
        IF(lastUrl.Substring(0 ,. 11).ToLower()== "/ UrlRewrite")//「urlrewirteは、ルートディレクトリ名で、プラスの理由は、ローカルテストが決定していることである
         //をサーバーにアップロードし、取り出されます{根があるとき ドメインの置換(消滅)!
            SuffixUrl = lastUrl.Substring(12).ToLower();
        }
        他
        {
            suffixUrl = lastUrl.Substring(1).ToLower();
        }
        BOOL isMatch = FALSE;
        正規表現myReg =新しい正規表現(@ "ユーザ/()+ [\ D \ W] \ ASPX。");
        IF(myReg.IsMatch(suffixUrl))
        {
            isMatch = TRUE。
            INT最初= suffixUrl.LastIndexOf( '/')+ 1。
            int型エンド= suffixUrl.LastIndexOf( '');
            int型な長さ=エンド最初;
            userId = suffixUrl.Substring(最初、な長さ); //获取被匹配的组部分
        }
        IF(isMatch)
        {
           NEWURL = "〜/ user.aspxはuserId =" +はuserId。
         }
        他
          {
            = NEWURL "〜/ Default.aspxの";
           }
 
        HttpContext.Current.RewritePath(NEWURL); //最も重要な単語は、URL書き換え
    }
テスト入力をします。http://xxx/urlrewrite/usre/cyq1162.aspx(住所列表示)
に成功に向けます。http:?//xxx/urlrewrite/user.aspxユーザーID = cyq1162(ページのコンテンツ表示)
..非常に単純な.. DLLを導入することなく、数行のコードを取得するWebConfigのは容易で構成しないでください。!

ます。https://my.oschina.net/secyaher/blog/274143で再現

おすすめ

転載: blog.csdn.net/weixin_33767813/article/details/93713424