2008-11-18 17 views
49

मेरी आईआईएस वेबसाइट के लिए, मैं सभी अनुरोधों को एक पृष्ठ पर रीडायरेक्ट करना चाहता हूं। इसका उद्देश्य यह है कि मैं डेटाबेस पर कुछ रखरखाव करना चाहता हूं (इसे ऑफ-लाइन लें) कि मेरे सभी वेब एप्लिकेशन उपयोग करते हैं। मेरे पास इस वेबसाइट के तहत लगभग 50 वेब ऐप्स चल रहे हैं, इसलिए मैं उनमें से प्रत्येक को कुछ बदलने के लिए आने से बचना चाहता हूं। मुझे लगता है कि मैं machine.config में एक ही बदलाव कर सकता हूं? किसी भी संकेत की सराहना की जाएगी।आईआईएस: सभी अनुरोधों को एक पृष्ठ पर रीडायरेक्ट करें?

उत्तर

10

सभी पृष्ठों को अनुपलब्ध बनाएं, शायद वर्तमान वेब साइट को रोकें और अपनी जगह पर एक पूरी नई पूरी तरह खाली जगह बनाएं। फिर 404 (फ़ाइल ओटी मिली) त्रुटि के लिए एक कस्टम त्रुटि पृष्ठ डालें। कस्टम त्रुटियां आईआईएस में वेबसाइट के गुण संवाद पर एक टैब है। बस वह पृष्ठ बनाएं जिसे आप भेजना चाहते हैं, फिर कस्टम त्रुटियों टैब पर 404 के लिए प्रविष्टि को उस नई फ़ाइल को इंगित करने के लिए बदलें जिसे आपने अभी बनाया है।

+0

यह एक उत्कृष्ट सुझाव था, और मेरे बड़े मिश्रण .NET/क्लासिक एएसपी अनुप्रयोगों के लिए काम किया। लागू करने के लिए बहुत आसान है। – Mike

+1

इसके साथ एक बड़ी समस्या है, हालांकि सौंदर्यशास्त्र से यूआई काम करेगा, अगर आपके पास अपनी साइट को क्रॉल करने वाला एक खोज इंजन होता है, तो यह अचानक 404 का समूह प्राप्त करेगा और खोज परिणामों से सामग्री को हटा देगा। – Talon

80

यदि आप ASP.NET 2.0 (या उच्चतर) का उपयोग कर रहे हैं, तो आप रूट पर एक app_offline.htm पृष्ठ छोड़ सकते हैं।

More info here

+0

यह अच्छा है, मुझे यह नहीं पता था। यद्यपि काम पर हमारी साइटें एएसपीएक्स और एचटीएम पृष्ठों का मिश्रण हैं, इसलिए यह हमारे लिए काम नहीं करेगी। – pipTheGeek

+0

अच्छा, मुझे इसके बारे में पता नहीं था। –

+0

मुझे स्कॉट गु के ब्लॉग को पढ़ने के app_offline.htm के बारे में पता चला, लेकिन मुझे हैरान है कि मैंने इसे कहीं और नहीं पढ़ा है। यह विज्ञापित के रूप में काम करता है, जो मदद करता है। –

36

webconfig में

<rewrite> 
     <rules> 
      <rule name="redirect all requests" stopProcessing="true"> 
       <match url="^(.*)$" ignoreCase="false" /> 
       <conditions logicalGrouping="MatchAll"> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" /> 
       </conditions> 
       <action type="Rewrite" url="index.php" appendQueryString="true" /> 
      </rule> 
     </rules> 
    </rewrite> 
+6

काम नहीं करेगा क्योंकि +1 यह एक वैकल्पिक समाधान है (जो मेरे लिए काम करने के लिए हुआ), हालांकि यह ध्यान दिया जाना चाहिए कि एक पुनर्लेख एक रीडायरेक्ट जैसा नहीं है, इसलिए यदि वास्तविक रीडायरेक्ट की आवश्यकता है तो यह काम नहीं करेगा। – Davy8

+3

यदि आपको पुनर्निर्देशन की आवश्यकता है, तो आपको केवल 'क्रिया प्रकार' को 'रीडायरेक्ट' में बदलना होगा। – rcdmk

+3

यह पुनर्लेखन नियम केवल फ़ोल्डर्स को अनुरोधों को रीडायरेक्ट करेगा, फाइलों पर नहीं। ओपी * सभी * अनुरोधों को पुनर्निर्देशित करना चाहता था। ऐसा करने के लिए, '' टैग हटाएं। – Keith

1

आप (बहुत डिफ़ॉल्ट साइट की तरह) पोर्ट 80 करने के लिए एक बाध्यकारी एक खाली मेजबान हेडर के साथ और फिर अन्य साइट (ओं) को रोकने के साथ आईआईएस में एक नई साइट बना सकते हैं? इस तरह सभी अनुरोधों को नई साइट द्वारा संभाला जाएगा, जो कि एक स्थिर HTML पृष्ठ हो सकता है जो उपयोगकर्ताओं को सूचित करता है कि साइट रखरखाव के लिए नीचे है।

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