Dim x AS New URI("http://www.example.com/test//test.asp")
Dim rel AS New URI("http://www.example.com/xxx/xxx.asp")
Console.Writeline(x.MakeRelativeUri(rel).Tostring())
के साथ काम यहाँ बनाने के लिए उत्पादन होता है:सामान्य यूआरआई इसे सही ढंग से MakeRelativeUri
../../xxx/xxx.asp
कौन सा सही लगती है लगभग सभी वेब सर्वर निम्नलिखित रूप में एक ही अनुरोध के बाद दो पर कार्रवाई करेंगे:
http://www.example.com/test//test.asp
http://www.example.com/test/test.asp
इस व्यवहार को ठीक करने का सबसे अच्छा तरीका क्या है यह करने के लिए कोई एपीआई है, या मैन्युअल रूप से एक नया यूआरआई बनायेगा और पथ में सभी // को हटा देगा?
कि कोड, बहुत कच्चे हैक है, क्योंकि यह कई परिदृश्य में काम नहीं करेगा, सबसे स्पष्ट रूप से http://example.com/test///xxx यह बहुत अच्छी तरह से इस इनकोडिंग नहीं कर रहा है दूसरी बात भले ही एक अब भी है वैध यूआरआई: http://example.com/?bla=//Whatup –
डॉ। एविल: एक वैध यूआरएल बड़े पैमाने पर वेबसर्वर पर व्याख्या करता है, और यूआरएल को पार्स करते समय यह कितना मजबूत होता है। चूंकि ढांचा आपके द्वारा की जाने वाली सभी सफाई नहीं करता है, फिर एक "मेकेलेटिवुरल" फ़ंक्शन स्वयं बनाएं जो उचित रूप से स्लेश की जांच और सफाई करता है। क्या आपको आरएफसी का पालन करना चाहिए, या ऐसे मामलों को संभालना चाहिए जहां यूआरएल स्पष्ट रूप से गलत है? ।) –