2013-09-07 3 views
5

ये web.config में कोड हैं:सभी httpErrors को कस्टम यूआरएल पर रीडायरेक्ट कैसे करें?

<system.web> 
    <customErrors mode="Off" > 
    </customErrors> 
</system.web> 
<system.webServer> 
    <httpErrors errorMode="Custom" existingResponse="Replace"> 
    <clear /> 
    <error statusCode="404" prefixLanguageFilePath="" path="/ResourceNotFound" responseMode="ExecuteURL" /> 
    <error statusCode="500" prefixLanguageFilePath="" path="/ResourceNotFound" responseMode="ExecuteURL" /> 
    </httpErrors> 
</system.webServer> 

उपरोक्त रूपरेखाओं के 404 और 500 ही की httpError रीडायरेक्ट करेगा।

लेकिन बजाय मैन्युअल के 400 के सभी त्रुटि कोड, 401, 403 .... जोड़ने etc..etc ...

हम सिर्फ यह एक ही यूआरएल के लिए सभी पुनर्निर्देशन त्रुटियों सेट कर सकता हूँ लिखे बिना सब एरर कोड?

<error statusCode="400" ..... 
<error statusCode="401" ..... 
<error statusCode="403" ..... 
<error statusCode="404" ..... 
<error statusCode="xxx" .... 

उत्तर

6

इस कोशिश,

web.config फ़ाइल में जोड़ें।

<system.webServer> 
    <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" > 
    <remove statusCode="500" /> 
    <error statusCode="500" prefixLanguageFilePath="C:\Contoso\Content\errors" 
    path="500.htm" /> 
</httpErrors> 
</system.webServer> 

और

<httpErrors existingResponse="Replace" defaultResponseMode="ExecuteURL" errorMode="Custom"> 
    <remove statusCode="404" /> 
    <error statusCode="404" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/> 
    <remove statusCode="401" /> 
    <error statusCode="401" path="/Account/Login.aspx" responseMode="ExecuteURL"/> 
    <remove statusCode="501"/> 
    <error statusCode="501" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/> 
    <remove statusCode="411"/> 
    <error statusCode="411" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/> 
    <remove statusCode="403"/> 
    <error statusCode="403" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/> 
</httpErrors> 

और अधिक इस http://www.iis.net/configreference/system.webserver/httperrors

+2

ओपी ने पूछा कि क्या वेब त्रुटियों में हर संभावित HTTP त्रुटि दर्ज किए बिना सभी त्रुटियों के लिए त्रुटि पृष्ठ पर रीडायरेक्ट करने का कोई तरीका है या नहीं। आपने बस अपना प्रश्न दोहराया। – webworm

+1

@webworm मैंने इसे उत्तर के रूप में चुना क्योंकि मैंने माना कि उसने अप्रत्यक्ष रूप से प्रश्न का उत्तर दिया था। जवाब "नहीं" है, प्रत्येक http त्रुटि कोड को अलग से परिभाषित किया जाना है। त्रुटि कोड = जैसी कोई चीज़ नहीं है :) – mjb

+0

*** Oops.aspx *** की सामग्री (स्रोत कोड) क्या है? – Kiquenet

5

httpErrors अनुभाग के बारे में defaultPath विशेषता है।

<system.webServer> 
    <httpErrors defaultPath="Error.html" defaultResponseMode="File"> 
    <clear /> 
    </httpErrors> 
</system.webServer> 

http://www.iis.net/configreference/system.webserver/httperrors

हालांकि, मैं उसका उपयोग नहीं करते, क्योंकि defaultPath डिफ़ॉल्ट रूप से आईआईएस एक्सप्रेस में बंद है। इसे अनलॉक करने के लिए %homepath%\Documents\IISExpress\config\applicationHost.config संपादित करने की आवश्यकता है।

<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath"> 
    <!-- ... --> 
</httpErrors> 
+0

मैंने अपनी आईआईएस एक्सप्रेस कॉन्फ़िगरेशन फ़ाइल में कोई फायदा नहीं हुआ है। मेरे कंप्यूटर पर स्थापित आईआईएस अनलॉक करने के साथ ही। क्या लॉक इश्यू को दूर करने के लिए कुछ और चीज बदलने की जरूरत है? – siride

+2

आधुनिक आईआईएस एक्सप्रेस $ (ProjectRoot) \। बनाम \ config निर्देशिका में कॉन्फ़िगरेशन कॉन्फ़िगर करता है। क्या आपने इसे संपादित किया? –

+0

धन्यवाद। मुझे नहीं पता था कि यह चले गए थे। नए स्थान में संपादन ने चाल की। – siride

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