2008-08-18 12 views
14

私はASP.NetとIISのいくつかのURLリライタを見て、他の人が何を使用しているのか、またその理由を知りました。 、以前のプロジェクトで使用される、非常に我々は ASP.NetにはどんなURLリライターを使用しますか?

  • Ewal UrlMapperを探していた柔軟性/パフォーマンスを持っていませんでした:

    • ThunderMain URLRewriter:ここ

      は、私が使用したかを見てきたものですで使用されます現在のプロジェクトが、ソースは

    • UrlRewritingNet.UrlRewriteを放棄しているようだ。まともなライブラリのように思えるが、ドキュメントの貧しい人々文法は不安
    • UrlRewriter.NETを感じて私の葉:これは私の現在のFAVです、優れた関数は置換正規表現にポンピングされますが、標準の.net正規表現の構文が少し変わります。
    • Managed Fusion URL Rewriter:これはスタックオーバーフローでprevious questionにありますが、例からまだ試していません構文では、web.configで編集できないようです。
  • 答えて

    3

    +1 UrlRewritingNET.URLRewrite - 何百ものサービス/ポータル/サイトを単一のボックスで何年も問題なく使用しています! (@ Jason - これはあなたが話しているものですよね?)

    URLRewriter.NETを個人用サイトでも使用しています。 @travis、あなたは変更された構文について正しいですが、一度それに慣れるとそれは良いことです。

    +0

    私は問題があります。 私は他のサイトにリダイレクトする必要がありました。 例えば: http://example.com/some3rdparty にhttp://somesite.com/with?alot&of¶meters ほんのURL ことがボックスから行うことは不可能だ、ソースの変更があることが必要です。だから私はManagedFusionを使用しました – AlfeG

    +0

    また、ハードコードセクション名 "urlrewritingnet"は大きな驚きでした。T_T – AlfeG

    +0

    不可能ではありません。それは単に献身と定義が必要です。 私はあなたが次のようなことを話していると思いますか? <追加virtualUrl = "^〜/ some3rdparty" rewriteUrlParameter = "ExcludeFromClientQueryString" destinationUrl = "somesite.com/with?alot=$2 = $ 3 &パラメータの& = $ 4 $ 5" ignoreCaseは= "真" /> か、単にdestinationUrl = "somesite.com/withalal &の&のパラメータ"? もちろん、学習曲線がありますが、これは私が使ったより包括的なものの1つです。 ルーティングとMVCは一緒に使用するために生まれたもので、この種の状況ではあなたを助けません。 –

    4

    私は新しいWebプロジェクトを開始していましたが、今はMVCをゼロから使うことになります。これは、標準として書き換えられたURLを使用します。

    7

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

    あなたはちょうど私がIHttpHandlerFactory実装を使用し、すべての着信URLを完全に制御を持って、どこがマップしていることを好むカスタムHttpModuleを

    でRequest.RewritePath()を使用することができます。

    2

    以前はトラフィックの多いサイトでUrlRewriting.NETを使用していました。私は開発者がドイツ語だと信じているので、英語の文書はおそらくそれほど良いものではありません。私は非常にそれをお勧めしたいと思います。

    2

    Ionic's ISAPI Rewrite Filterは、無料の場合を除き、ISAPI_Rewriteとよく似ています。両方ともmod_rewriteの後にモデル化され、ISAPIフィルタなので、IISで設定する必要があるため、コードでそれらを管理することはできません。

    1

    私は.NET URL Rewriter and Reverse Proxyを大成功に使用しました。これはmod_rewriteとほぼ同等で、ほぼ同じ構文を使用しています。プロジェクトのオーナーは非常に親切でフレンドリーで、プロダクトは素晴らしい作品です。この宝石は、多くのソリューションが提供していない書き換え機能とプロキシ機能の両方を提供します。 IMO、一見の価値がある。

    3

    IIS 7には、IISには十分に対応しており、IISとの統合が良好なURL Rewrite Moduleがあります。

    +0

    +1新しいスキールです!これは私が使用しているものです。 Request.Urlは要求されたものではなく実際のページになっているので、UrlRewritingNet.Rewriteに慣れていれば注意してください。これで、実際にリクエストされたURLを取得するためにRequest.RawUrlが必要になります – BritishDeveloper

    2

    IIS7のWindows 2008環境では、UrlRewritingNetの使用をお勧めしません。

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

    +0

    Windows 2008 R2ではUrlRewritingNet.UrlRewriteを使用して統合プールで実行されているすべてのサイト(50+)に問題ありません – balint

    0

    +1が、なぜ私はいつも.aspxのと私のURLを終了する必要がありますか?私はそれがより良い正規表現のパターンを改善すべきだと思います。

    localhost/Products/Beverages "、" localhost/Products "と入力するだけで、常にlocalhost/Products/Beverages.aspx"、 "localhost/Products/Condiments.aspx"でaspxを終了する必要があります。 /調味料 "のように見えるMVCルート。

    This 1は良く見えるが、それは私のサイトのために働いていません。私はまだそれを理解することはできません。

    +0

    '.aspx' IISの制限に。それ以外の場合は、aspnet_isapi.dllを使用するために '。*'をマッピングする必要があります。多くのホスティングプロバイダはこれを許可しておらず、誤ったMIMEタイプのPNGが提供されるなど、パフォーマンスが低下したり、奇妙なことが起こる可能性があります。 – travis

    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")); 
    
         } 
    
    関連する問題