ما هو أداة إعادة كتابة عنوان URL الذي تستخدمه لـ ASP.Net؟[مغلق]

StackOverflow https://stackoverflow.com/questions/14697

سؤال

لقد ألقيت نظرة على العديد من أدوات إعادة كتابة عناوين URL لـ ASP.Net وIIS وكنت أتساءل عما يستخدمه الآخرون ولماذا.

فيما يلي تلك التي استخدمتها أو نظرت إليها:

  • ThunderMain URLRewriter:المستخدمة في مشروع سابق، لم تكن تتمتع بالمرونة/الأداء الذي كنا نبحث عنه
  • إيوال UrlMapper:تستخدم في المشروع الحالي، ولكن يبدو أن المصدر قد تم التخلي عنه
  • UrlRewritingNet.UrlRewrite:تبدو مكتبة جيدة ولكن القواعد النحوية الضعيفة للوثائق تجعلني أشعر بعدم الارتياح
  • UrlRewriter.NET:هذا هو المفضل لدي الحالي، ويتمتع بمرونة كبيرة، على الرغم من أن الوظائف الإضافية التي يتم ضخها في التعبيرات العادية البديلة تغير صيغة .Net regex القياسية قليلاً
  • إعادة كتابة عنوان URL المُدار:لقد وجدت هذا واحد في السؤال السابق في تجاوز سعة المكدس، ولكن لم تجربه بعد، من بناء الجملة المثال، لا يبدو أنه قابل للتحرير عبر web.config
هل كانت مفيدة؟

المحلول

+1 UrlRewritingNET.URLRewrite - يُستخدم في عدة مئات من الخدمات/البوابات/المواقع في صندوق واحد بدون مشكلة لسنوات!(@جايسون - هذا هو الشخص الذي تتحدث عنه، أليس كذلك؟)

ولقد استخدمت أيضًا URLRewriter.NET على موقع شخصي، ووجدته مثيرًا للاهتمام.@ ترافيس، أنت على حق فيما يتعلق ببناء الجملة الذي تم تغييره، ولكن بمجرد أن تعتاد عليه، يصبح الأمر جيدًا.

نصائح أخرى

هناك System.Web.Routing الذي تم إصداره للتو مع .NET 3.5.

يمكنك فقط استخدام Request.RewritePath() في HttpModule مخصص

أفضّل استخدام تطبيق IHttpHandlerFactory وأتمتع بالتحكم الكامل في جميع عناوين URL الواردة والأماكن التي تم تعيينها إليها.

إذا كنت أبدأ مشروع ويب جديدًا الآن، فسأفكر في استخدام MVC من البداية.يستخدم عناوين URL المعاد كتابتها بشكل قياسي.

IIS 7 لديه وحدة إعادة كتابة عنوان URL وهو قادر إلى حد ما ويتكامل بشكل جيد مع IIS.

لقد استخدمت UrlRewriting.NET من قبل على موقع ذو حركة مرور عالية للغاية - لقد كان رائعًا بالنسبة لنا.أعتقد أن المطورين هم ألمان، لذا ربما لا تكون الوثائق الإنجليزية جيدة بالقدر الذي يمكن أن تكون عليه.أنا أوصي به بشدة.

لقد كانت لدي تجربة جيدة مع مرشح إعادة كتابة ISAPI الخاص بـ Ionic وهو مشابه جدًا لـ ISAPI_Rewrite، باستثناء أنه مجاني.تم تصميم كلاهما على غرار mod_rewrite وهما مرشحات ISAPI، لذا لا يمكنك إدارتهما في التعليمات البرمجية حيث يتعين عليك إعدادهما في IIS.

لا أوصي بـ UrlRewritingNet إذا كنت تعمل في بيئة IIS7 Windows 2008.

سبب:يتطلب UrlRewritingNet أن يكون وضع تجمع التطبيقات لديك = كلاسيكي وغير متكامل.هذا ليس الأمثل أيضًا ، يبدو أن مشروعهم قد مات في العامين الماضيين.

لقد قمت للتو بتثبيت إعادة كتابة ISAPI من شركة Helicon 3.يعمل تماما مثل htaccess.أنا أحفر ذلك حتى الآن.

إستعملت .NET URL Rewriter والوكيل العكسي بنجاح كبير.إنه على قدم المساواة تقريبًا مع mod_rewrite ويستخدم تقريبًا نفس بناء الجملة.صاحب المشروع متعاون وودود للغاية والمنتج يعمل بشكل رائع.توفر هذه الجوهرة وظيفة إعادة الكتابة والوكيل، والتي لا توفرها العديد من الحلول.المنظمة البحرية الدولية، تستحق المشاهدة.

إجراء 1+ لـ UrlRewritingNet.UrlRewrite أيضًا ولكن لماذا أحتاج دائمًا إلى إنهاء عنوان URL الخاص بي بـ .aspx؟أعتقد أنه ينبغي تحسين بارترن التعبير العادي بشكل أفضل.

لماذا يجب علي دائمًا أن أنتهي بـ aspx في virtualURL localhost/Products/Beverages.aspx"، "localhost/Products/Condiments.aspx".أريد فقط كتابة localhost/Products/Beverages، و"localhost/Products/Condiments" التي تبدو مثل مسار MVC.

هذا تبدو واحدة جيدة ولكنها لا تعمل لموقعي.ما زلت لا أستطيع معرفة ذلك.

يخدم توجيه asp.net متطلبات إعادة كتابة عنوان URL أيضًا، بل وأكثر من ذلك بكثير.باستخدام توجيه asp.net، لا يمكنك "إعادة كتابة عنوان url" فحسب، بل يمكنك أيضًا إنشاء معالجات مخصصة للطلبات المختلفة.ومع ذلك، يتطلب توجيه asp.net وجود asp.net sp1 على الأقل.

الشيء الأساسي الذي تفعله لكي يعمل التوجيه البسيط هو إضافة عدد قليل من معالجات التوجيه في Application_Start حتى داخل الملف Global.asax.cs.

 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"));

        }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top