14

私は、ASP.Net および IIS 用のいくつかの URL リライタを見てきましたが、他の人は何を使用しているのか、またその理由は何なのか疑問に思っていました。

これが私が使用したり見たりしたものです:

  • ThunderMain URLRewriter : 以前のプロジェクトで使用されていましたが、私たちが探していた柔軟性/パフォーマンスがまったくありませんでした
  • Ewal UrlMapper : 現在のプロジェクトで使用されていますが、ソースは放棄されているようです
  • UrlRewritingNet.UrlRewrite : まともなライブラリのように見えますが、ドキュメントの文法が貧弱で不安になります
  • UrlRewriter.NET : これは私の現在のお気に入りであり、優れた柔軟性を備えていますが、置換正規表現に追加された追加関数により、標準の .Net 正規表現構文が少し変更されます。
  • Managed Fusion URL Rewriter : スタック オーバーフローに関する以前の質問でこれを見つけましたが、まだ試していません。構文例から、web.config で編集できないようです。
4

11 に答える 11

7

.NET 3.5 でリリースされたばかりの System.Web.Routing があります。

カスタム HttpModule で Request.RewritePath() を使用できます

私は IHttpHandlerFactory 実装を使用することを好み、すべての着信 URL とそれらがマップされる場所を完全に制御できます。

于 2008-08-18T14:35:13.120 に答える
4

今、新しい Web プロジェクトを開始する場合、MVC をゼロから使用することを検討します。これは、書き換えられた URL を標準として使用します。

于 2008-08-18T14:34:00.750 に答える
3

+1 UrlRewritingNET.URLRewrite -- 1 つのボックスで数百のサービス/ポータル/サイトで何年も問題なく使用されています! (@ジェイソン - それはあなたが話しているものですよね?)

また、個人サイトで URLRewriter.NET を使用したこともあり、興味深いことがわかりました。@travis、変更された構文については正しいですが、慣れれば問題ありません。

于 2008-08-20T09:09:50.953 に答える
3

IIS 7 には、かなりの機能を備え、IIS とうまく統合できるURL 書き換えモジュールがあります。

于 2009-02-27T14:23:47.270 に答える
2

IIS7 Windows 2008 環境にいる場合、UrlRewritingNet はお勧めしません。

理由: UrlRewritingNet では、アプリ プール モード = クラシックであり、統合されていない必要があります。これは最適ではありません。また、彼らのプロジェクトは 2 年間にわたって非常に死んでいるように見えます。

于 2009-10-14T15:33:15.900 に答える
2

以前、非常にトラフィックの多いサイトで UrlRewriting.NET を使用したことがあります。開発者はドイツ人だと思うので、英語のドキュメンテーションはおそらく十分ではありません。強くお勧めします。

于 2008-08-18T15:15:01.480 に答える
2

Ionic の ISAPI Rewrite Filterは、無料であることを除けば ISAPI_Rewrite と非常によく似ています。どちらも mod_rewrite をモデルにしており、ISAPI フィルターであるため、IIS で設定する必要があるため、コードで管理することはできません。

于 2008-08-18T19:56:55.013 に答える
1

HeliconのISAPIRewrite3をインストールしました。htaccessとまったく同じように機能します。私は今のところそれを掘っています。

于 2008-08-23T16:36:40.590 に答える
0

asp.net ルーティングは、URL 書き換えの要件にも対応しています。asp.net ルーティングを使用すると、「URL を書き換える」だけでなく、さまざまな要求のカスタム ハンドラーを作成できます。ただし、asp.net ルーティングには、少なくとも asp.net sp1 が必要です。

単純なルーティングを機能させるために行う基本的なことは、Global.asax.cs ファイル内であっても Application_Start にいくつかのルート ハンドラーを追加することです。

 protected void Application_Start(object sender, EventArgs e)
        {

                        RegisterRoutes(RouteTable.Routes);


        }
        private static void RegisterRoutes(RouteCollection routes)
        {          

            routes.Add("Routing1", new Route("/Blog/id/2","/Blog.aspx"));

        }
于 2012-08-25T08:34:36.483 に答える
0

UrlRewritingNet.UrlRewrite も +1 しますが、URL を常に .aspx で終わらせる必要があるのはなぜですか? 正規表現パートナを改善する必要があると思います。

virtualURL localhost/Products/Beverages.aspx", "localhost/Products/Condiments.aspx" で常に aspx で終わらなければならないのはなぜですか。 MVCルートのように見えます。

これは良さそうに見えますが、私のサイトでは機能していません。私はまだそれを理解することはできません。

于 2011-05-26T12:30:10.950 に答える