2010-02-26 14 views
6

मैं आईआईएस 6 का उपयोग कर एक कस्टम 404 पेज वापस करने की कोशिश कर रहा हूं। (मेरे पास ऐसी साइट है जो अधिकतर .shtml पेज चलने योग्य प्रकार का उपयोग करके बनाई गई है)। मैंने इसे 2 तरीकों से आजमाया है:आईआईएस 404 कस्टम त्रुटि: यूआरएल रिटर्न प्रतिक्रिया कोड 200 इसके बजाय

1) IIS में 404 त्रुटि हैंडलर को पथ \ 404.html के साथ "फ़ाइल" टाइप करने के लिए सेट करें। यह काम करता है, लेकिन इसका यह भी अर्थ है कि मैं अपनी साइट के शीर्षलेख और पाद लेख को आयात नहीं कर सकता (इसलिए .shtml) 404 त्रुटि हैंडलर को 404.shtml परिणामों को डिफ़ॉल्ट 404 पेज में इंगित करने का प्रयास कर रहा है ... मुझे लगता है कि आईआईएस कर सकता है 404 में shtml फ़ाइलों को संसाधित नहीं करते हैं।

2) प्रकार को "URL" पर सेट करें। यह बहुत अच्छा काम करता है, सिवाय इसके कि प्रतिक्रिया कोड अब 404 नहीं है! इसका एक 200.

मैं अपनी 404.shtml फ़ाइल की सामग्री के साथ 404 प्रतिक्रिया कोड के साथ प्रतिक्रिया देने के लिए आईआईएस कैसे प्राप्त कर सकता हूं? इसलिए मैं यह परीक्षण करने के लिए असमर्थ हूँ

उत्तर

6

यह देखते हुए कि यह आईआईएस है, 404.shtml के शीर्ष करने के

<% Response.Status = "404 Not Found" %> 

जोड़ने के लिए 404.

मैं एक विंडोज़ मशीन पर नहीं कर रहा हूँ प्रतिक्रिया कोड बदलना चाहिए इस समय सत्यापित करने के लिए।

अद्यतन:

मैं अंत में आप अपनी पोस्ट के लिए एक टिप्पणी में उल्लेख किया है एक आईआईएस 6. पर कुछ परीक्षण चलाने के लिए सक्षम था, एक .shtml फ़ाइल स्क्रिप्ट चलाने के लिए आदेश की अनुमति नहीं है।

  1. के बजाय अपने कस्टम 404 से निपटने पेज 404.shtml, नाम यह 404.asp नामकरण: तो वहाँ इस के आसपास काम करने के लिए कम से कम दो तरीके हैं। उपयोगकर्ता को पृष्ठ का वास्तविक नाम कभी नहीं देखना चाहिए, इसलिए इसे किसी भी समस्या का कारण नहीं बनना चाहिए। ध्यान दें कि "सक्रिय सर्वर पेज" को आईआईएस के वेब सेवा एक्सटेंशन फ़ोल्डर में 'अनुमत' पर सेट किया जाना चाहिए।

  2. ssinc.dll के बजाय asp.dll का उपयोग करने के लिए .shtml के लिए पृष्ठ एक्सटेंशन मैपिंग संशोधित करें। आप वेबसाइट का चयन करके और गुणों को देखकर आईआईएस से ऐसा कर सकते हैं -> होम निर्देशिका टैब -> कॉन्फ़िगरेशन -> मैपिंग टैब। ध्यान दें कि यह एक आदर्श समाधान से बहुत दूर है क्योंकि अब आपके सभी .shtml फ़ाइलों को asp.dll द्वारा संसाधित किया जाएगा। यह आपके पृष्ठों को अधिक धीरे-धीरे प्रस्तुत करने का कारण बन सकता है (अधिक जटिलता के कारण asp.dllssinc.dll से अधिक धीरे-धीरे फ़ाइलों को संसाधित करता है) और principle of least privilege का उल्लंघन करता है।

यदि कोई भी विकल्प आपकी स्थिति में फिट नहीं है, तो यह अभी भी संभव हो सकता है लेकिन समाधान तुरंत मेरे लिए स्पष्ट नहीं है।

+0

hmmm मैंने सोचा था कि आईआईएस में shtml फ़ाइलों में आप जो कुछ भी कर सकते थे, वह शामिल था और निष्पादित था। मैं सोमवार को यह कोशिश करूंगा, धन्यवाद – Joel

+0

मैं सोच रहा था कि जब भी मैंने सुझाव पोस्ट किया था, लेकिन मैंने सोचा कि कम से कम उल्लेख करना उचित था। उम्मीद है कि यह काम करेगा। – lostriebo

+0

धन्यवाद, मैं यूआरएल /404.asp का उपयोग करने का मार्ग चला गया। यह काफी अच्छी तरह से काम किया। एक बार फिर धन्यवाद! – Joel

0

आईआईएस प्रबंधक में, अपनी वेबसाइट (या वर्चुअल डीआईआर) की गुणों को खोलें और कस्टम त्रुटियों टैब पर जाएं। वहां आप सेट कर सकते हैं कि प्रत्येक त्रुटि कोड के मामले में कौन सी फाइल भेजी जाती है, जिसमें 404.

+0

धन्यवाद, यह वही है जो मैं कोशिश कर रहा हूं। – Joel

+0

ओह, अब मैं आपकी बात एनआर 1, क्षमा चाहता हूँ। सहजता से, मुझे नहीं लगता कि त्रुटि पृष्ठ गतिशील हो सकते हैं। – Timores

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