2008-08-18 3 views
14

मैंने एएसपी.NET और आईआईएस के लिए कई यूआरएल रीवाइटर देखा है और यह सोच रहा था कि हर कोई क्या उपयोग करता है, और क्यों।क्या आप एएसपी.Net के लिए यूआरएल रीराइटर का उपयोग करते हैं?

  • ThunderMain URLRewriter:

    यहाँ जो कि मैं प्रयोग किया जाता है या पर ध्यान दिया है कर रहे हैं पिछले एक परियोजना में इस्तेमाल काफी लचीलापन/प्रदर्शन हम

  • Ewal UrlMapper देख रहे थे नहीं था: में इस्तेमाल किया एक मौजूदा परियोजना है, लेकिन स्रोत
  • UrlRewritingNet.UrlRewrite छोड़ दिया जा रहा है: एक सभ्य पुस्तकालय लेकिन की तरह लगता है प्रलेखन के गरीब व्याकरण मुझे महसूस कर छोड़ देता है असहज
  • UrlRewriter.NET: यह मेरा वर्तमान fav है, बहुत लचीलापन है, हालांकि प्रतिस्थापन regexs में पंप अतिरिक्त कार्यों मानक बदलता है। नेट regex वाक्यविन्यास थोड़ा
  • Managed Fusion URL Rewriter: मुझे यह स्टैक ओवरफ़्लो पर previous question में मिला, लेकिन उदाहरण से, अभी तक इसे आजमाया नहीं है वाक्य रचना है, यह web.config

उत्तर

3

+1 UrlRewritingNET.URLRewrite - कई सौ सेवाओं/पोर्टल/साइटों में वर्षों के बिना बिना किसी बॉक्स पर उपयोग किया जाता है! (@ जेसन - वह वही है जिसके बारे में आप बात कर रहे हैं, है ना?)

और मैंने व्यक्तिगत साइट पर URLRewriter.NET का भी उपयोग किया है, और इसे पाया, आह, दिलचस्प। @travis, आप बदले गए सिंटैक्स के बारे में सही हैं, लेकिन एक बार जब आप इसका इस्तेमाल करते हैं, तो यह अच्छा होता है।

+0

मुझे इसके साथ कोई समस्या है। जो मुझे चाहिए वह दूसरी साइट पर रीडायरेक्ट करना है। उदाहरण के लिए: http://example.com/some3rdparty बस छोटे यूआरएल यह बॉक्स के ऐसा करने के लिए असंभव है के लिए को http://somesite.com/with?alot&of¶meters , वहाँ स्रोतों में परिवर्तन की जरूरत है। इसलिए मैंने प्रबंधित फ्यूजन – AlfeG

+0

का उपयोग किया है, इसके अलावा हार्ड कोडित सेक्शन नाम "urlrewritingnet" एक बड़ा आश्चर्य था T_T – AlfeG

+0

यह असंभव नहीं है। यह सिर्फ समर्पण और परिभाषा लेता है। मुझे लगता है कि आप निम्न की तरह कुछ के बारे में बात कर रहे हैं? <जोड़ने virtualUrl = "^ ~/some3rdparty" rewriteUrlParameter = "ExcludeFromClientQueryString" destinationUrl = "somesite.com/with?alot=$2 = $ 3 & मापदंडों के & = $ 4. $ 5" ignoreCase = "true" /> या बस destinationUrl = "somesite.com/with?alot & & पैरामीटर"? निश्चित रूप से, एक सीखने की वक्र है, लेकिन हे, यह मैंने उपयोग किए जाने वाले अधिक व्यापक लोगों में से एक है। राउटिंग और एमवीसी का एक साथ उपयोग होने के लिए पैदा हुए हैं, और वे निश्चित रूप से इस प्रकार की स्थिति में आपकी मदद नहीं करेंगे। नई स्कूल होने के लिए –

4

के माध्यम से संपादित किया जा करने के लिए मैं एक नई वेब परियोजना अब मैं खरोंच से MVC का उपयोग कर पर विचार करना होता शुरू कर रहे थे, तो प्रतीत नहीं होता। यह पुनः लिखित यूआरएल मानक के रूप में उपयोग करता है।

7

सिस्टम.Web.Routing है जिसे अभी .NET 3.5 के साथ रिलीज़ किया गया था।

तुम सिर्फ एक कस्टम HttpModule

में Request.RewritePath() का उपयोग कर सकते मैं एक IHttpHandlerFactory कार्यान्वयन उपयोग करने को प्राथमिकता और आने वाले सभी यूआरएल पर पूरा नियंत्रण है और वे कहाँ से मैप किए जा रहे हैं।

2

मैंने बहुत उच्च ट्रैफिक साइट पर UrlRewriting.NET का उपयोग किया है - यह हमारे लिए बहुत अच्छा काम करता है। मेरा मानना ​​है कि डेवलपर्स जर्मन हैं, इसलिए अंग्रेजी दस्तावेज शायद उतना अच्छा नहीं है जितना हो सकता है। मैं अत्यधिक अनुशंसा करता हूं।

2

मुझे Ionic's ISAPI Rewrite Filter के साथ अच्छा अनुभव मिला है जो कि आईएसएपीआई_राइट्राइट के समान है, सिवाय इसके कि। दोनों को mod_rewrite के बाद मॉडलिंग किया गया है और आईएसएपीआई फ़िल्टर हैं, इसलिए आप उन्हें कोड में प्रबंधित नहीं कर सकते क्योंकि आपको उन्हें आईआईएस में सेट करना है।

1

मैंने अभी Helicon's ISAPI Rewrite 3 स्थापित किया है। वास्तव में htaccess की तरह काम करता है। मैं अब तक diggin हूँ।

1

मैंने बड़ी सफलता के साथ .NET URL Rewriter and Reverse Proxy का उपयोग किया। यह लगभग mod_rewrite के बराबर है और लगभग सभी सिंटैक्स का उपयोग करता है। परियोजना का मालिक बेहद सहायक और मैत्रीपूर्ण है और उत्पाद बहुत अच्छा काम करता है। यह मणि रिवाइटिंग और प्रॉक्सी कार्यक्षमता दोनों प्रदान करता है, जो कई समाधान प्रदान नहीं करते हैं। एक नजर लायक आईएमओ।

3

आईआईएस 7 में URL Rewrite Module है जो आईआईएस के साथ काफी सक्षम और एकीकृत है।

+0

+1! यही है वह जो मेरे द्वारा उपयोग किया जाता है। सावधान रहें, भले ही आप UrlRewritingNet.Rewrite पर उपयोग करें, क्योंकि request.Url अब अनुरोध किए गए एक के बजाय वास्तविक पृष्ठ है। अब आपको url प्राप्त करने के लिए Request.RawUrl की आवश्यकता है जिसे वास्तव में – BritishDeveloper

2

यदि आप आईआईएस 7 विंडोज 2008 पर्यावरण में हैं तो मैं UrlRewitingNet की अनुशंसा नहीं करता।

कारण: UrlRewritingNet की आवश्यकता है कि आप ऐप पूल मोड = क्लासिक और एकीकृत नहीं हैं। यह इष्टतम नहीं है, इसके अलावा, उनकी परियोजना पिछले 2 वर्षों में बहुत मृत लगती है।

+0

से अनुरोध किया गया था, यह Windows 2008 R2 पर कोई समस्या नहीं है, सभी साइट्स (50+) UrlRewritingNet.UrlRewrite – balint

0

+1 urlRewritingNet.UrlRrrrite के लिए +1 लेकिन मुझे हमेशा अपने URL को .aspx के साथ समाप्त करने की आवश्यकता क्यों है? मुझे लगता है कि इसे बेहतर नियमित अभिव्यक्ति पैटर्न में सुधार किया जाना चाहिए।

वर्चुअल यूआरएल स्थानीयहोस्ट/उत्पाद/पेय पदार्थ.एएसपीएक्स "," लोकलहोस्ट/उत्पाद/मसालों.एएसपीएक्स "में मुझे एएसपीएक्स के साथ हमेशा क्यों समाप्त करना है। मैं सिर्फ स्थानीयहोस्ट/उत्पाद/पेय पदार्थ टाइप करना चाहता हूं", "स्थानीयहोस्ट/उत्पाद/मसालों "जो एमवीसी मार्ग की तरह दिखते हैं।

This एक अच्छा लग रहा है लेकिन यह मेरी साइट के लिए काम नहीं कर रहा है। मैं अभी भी इसे समझ नहीं सकता।

+0

के साथ एकीकृत पूल में चल रही हैं। देय होने के लिए '.aspx' उपयोग के साथ समाप्त होना आईआईएस के साथ एक सीमा के लिए। अन्यथा आपको aspnet_isapi.dll का उपयोग करने के लिए '। *' को मैप करना होगा। कई होस्टिंग प्रदाता इसकी अनुमति नहीं देते हैं और इससे गरीब प्रदर्शन और कुछ अन्य अजीब quirks, जैसे पीएनजी गलत माइम प्रकार के साथ परोसा जा सकता है। – travis

0

एएसपीनेट रूटिंग यूआरएल रीराइटिंग की आवश्यकता को भी प्रदान करता है और इससे भी ज्यादा। एएसपीनेट रूटिंग के साथ आप सिर्फ "यूआरएल को फिर से लिखना" नहीं कर सकते हैं बल्कि विभिन्न अनुरोधों के लिए कस्टम हैंडलर बना सकते हैं। asp.net रूटिंग हालांकि कम से कम asp.net sp1 की आवश्यकता है।

काम करने के लिए एक साधारण रूटिंग के लिए आप जो मूल बात करते हैं वह 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")); 

     } 
संबंधित मुद्दे