मेरे पास एक एकीकृत प्रबंधित पाइपलाइन के साथ आईआईएस 7.0 पर चलने वाला मानक एएसपी.Net वेबफॉर्म एप्लिकेशन है। हमारी साइट पर कई छवियों में उनके फाइल नामों में रिक्त स्थान हैं (उदा। './baseball drawing.gif'
)। जब हमने अपनी एचटीएमएल पन्नों में इन छवियों जगह हम रास्तों सांकेतिक शब्दों में बदलना है ताकि हमारे एचटीएमएल img टैग इस < img src='./baseball%20drawing.gif' />
डबल यूआरएल एनकोडेड अनुरोध पथ मान्य होने की अनुमति दें
अब की तरह लग रहे यूआरएल, समस्या में जब कुछ खोज इंजन और webcrawlers हमारी साइट सूचकांक करने की कोशिश आता है। जब वे हमारे पृष्ठों को स्क्रैप करते हैं तो वे हमारे पहले से ही एचटीएमएल-एन्कोडेड पथों को एन्कोड करेंगे जो इस './baseball%2520drawing.gif'
जैसे छवि लिंक प्राप्त करते हैं, जहां %25
'%' के लिए यूआरएल एन्कोडिंग है। इससे दो समस्याएं आती हैं:
- जब उपयोगकर्ता इन खोज इंजनों से परिणाम प्राप्त करते हैं तो उन्हें टूटी हुई लिंक मिलती हैं।
- जब उपयोगकर्ता इन टूटी हुई लिंक पर नेविगेट करने का प्रयास करते हैं तो यह हमारे सिस्टम में त्रुटियों को फेंकता है।
जैसा कि आप देख सकते हैं कि यह एक खोने की स्थिति है। उपयोगकर्ताओं को टूटी हुई लिंक मिलती हैं, और हमें हमारे त्रुटि लॉग में शोर मिलता है।
मैं यह जानने का प्रयास कर रहा हूं कि इस समस्या को कोई किस्मत के साथ कैसे ठीक किया जाए। यहाँ मैं क्या कोशिश की है है: web.config में
- सेट
<requestFiltering allowDoubleEscaping='true'>
"404.11 यूआरएल डबल बच त्रुटि" को रोकने के लिए। इसने पहली त्रुटि तय की लेकिन एक नया कारण बन गया, "एक संभावित खतरनाक अनुरोध। पाथ मिला"। - "संभावित खतरनाक Request.Path" त्रुटि को रोकने के लिए
<httpRuntime requestPathInvalidChars>
से '%' को हटा दिया गया। इसने दूसरी त्रुटि तय की लेकिन अब हमारे पास तीसरा है, "संसाधन नहीं मिला"। - मैंने
Request.Path
देखने के लिए अपने कोड में एक ब्रेक लगाया। ऐसा लगता है कि यह 'बॉल% 2520Image.gif' के बजाय 'Ball Image.gif' के मान के साथ सही है। इस मामले के साथ मुझे यकीन नहीं है कि यह क्यों काम नहीं कर रहा है।
मुझे लगता है कि मेरे पास एक सुपर हैक है जहां मुझे वास्तव में समझने के बिना सब कुछ अक्षम करना है क्यों कुछ भी काम नहीं कर रहा है। तो मुझे लगता है कि मेरा प्रश्न तीन गुना
- समाधान प्रयास 1 समस्या का ख्याल क्यों नहीं आया?
- समाधान 2 समस्या का ख्याल क्यों नहीं रखता?
- मेरा अनुरोध क्यों है। पैथ चरण 3 में सही दिखता है लेकिन यह अभी भी काम नहीं करता है?
कोई भी सहायता जो भी प्रदान कर सकता है उसकी सराहना की जाएगी।
ब्याज से, कौन सा खोज इंजन टूटा हुआ है? –
अच्छा सवाल। स्वच्छ छवि खोज एक है (http://www.cleanimagesearch.com)। "बेसबॉल छवि" के लिए खोज के बारे में मैं क्या कह रहा हूं इसका एक उदाहरण देखने के लिए। आने वाली पहली छवियों में से एक तोड़ा जाएगा। यदि आप उस छवि के लिंक पर क्लिक करते हैं और यूआरएल में% 25 को प्रतिस्थापित करते हैं तो बस सब कुछ ठीक काम करेगा। वहां बहुत सारी जंक साइटें भी हैं जो पूरे वेब से छवियों का एक समूह है जिसमें टूटी हुई लिंक भी शामिल हैं। यदि आप इनमें से किसी एक का उदाहरण चाहते हैं तो मैं आपको एक लिंक ईमेल कर सकता हूं (मुझे इस तरह की साइटों पर भरोसा नहीं है इसलिए मैं यहां लिंक प्रकाशित नहीं करना चाहता हूं)। –
मुझे यह भी लगता है कि यह समस्या आईपैड पर Google छवि खोज करते समय होती है। उस स्थिति में, हालांकि, Google विफलता को संभालने के लिए पर्याप्त स्मार्ट है ताकि छवि अभी भी सही तरीके से प्रदर्शित हो। हमें बस हमारी लॉग फाइलों में एक त्रुटि मिलती है। GoogleAgent एक आईपैड होने पर Google के कारण होने वाली सभी त्रुटियों को अनदेखा करने के लिए हमारे पास एक फ़िल्टर है और त्रुटि यह है कि Request.Path में% है। –