xml - IIS7: HTTP-> HTTPS साफ़ रूप से




iis-7 (4)

Global.asax

protected void Application_BeginRequest()
{
if (!Context.Request.Url.AbsoluteUri.Contains("localhost") && !Context.Request.IsSecureConnection)
Response.Redirect(Context.Request.Url.ToString().Replace("http:", "https:"));
}

क्या साइट के HTTP: // संस्करण में अपने HTTPS: // समकक्ष पर जाने के सभी प्रयासों को पुनर्निर्देशित करने का कोई साफ तरीका है?


एक साफ तरीका केवल http-> https से यूआरएल योजना को बदलता है और बाकी सब कुछ समकक्ष छोड़ देता है। यह सर्वर-साइड होना चाहिए ताकि कोई ब्राउज़र समस्या न हो।

JPPinto.com में यह कैसे किया जाता है, इस पर चरण-दर-चरण निर्देश हैं , सिवाय इसके कि वे सर्वर-साइड रीडायरेक्ट के बजाय जावास्क्रिप्ट (HttpRedirect.htm) का उपयोग करते हैं। किसी कारण से, यदि आप 'दोस्ताना HTTP त्रुटि संदेश दिखाएं' सक्षम हैं, तो डिफ़ॉल्ट रूप से चालू होने पर, मैं जावा को जावास्क्रिप्ट चला नहीं सकता। लिपि के साथ एक और बात यह है कि पथ के लिए पुनर्निर्देशन एफएफ या क्रोम में भी काम नहीं करता था। स्क्रिप्ट हमेशा रूट पर रीडायरेक्ट करता है। (शायद मुझे कुछ याद आया है, क्योंकि इसे पथ पर रीडायरेक्ट करना चाहिए।)

इन कारणों से मैंने रीडायरेक्ट के लिए एएसपी पेज का उपयोग किया है। नकारात्मकता यह है कि सर्वर पर क्लासिक एएसपी सक्षम होना आवश्यक है।

ओप्सनब्लॉग में एक एएसपी स्क्रिप्ट और निर्देश हैं जो आईआईएस 6 के साथ अच्छी तरह से काम करते हैं।

आईआईएस 7 के साथ इस विधि का उपयोग करके मुझे कुछ समस्याएं आई हैं। यूजर इंटरफेस ज्यादातर मुद्दों पर है, क्योंकि आईआईएस 7 कुछ याद करने में वाकई आसान बनाता है।

  • सबसे पहले, आपको एएसपी को वेब सर्वर रोल फीचर के रूप में स्थापित करने की आवश्यकता है।
  • दूसरा, वर्चुअल निर्देशिका का उपयोग करके आईआईएस 7 में अपेक्षित काम नहीं किया गया और मैंने इसे डीबग करने का प्रयास नहीं किया। इसके बजाय, मैंने फ़ाइल को साइट के रूट फ़ोल्डर में रखा है और इसे संदर्भित करने के लिए 403.4 त्रुटि पृष्ठ में url '/SSLRedirect.asp' का उपयोग किया है।
  • आखिरकार , सबसे कठिन हिस्सा, आपको SSLRedirect.asp के लिए SSL लागू नहीं करना चाहिए । अन्यथा आपको 403.4 त्रुटि मिल जाएगी। ऐसा करने के लिए आप आईआईएस 7 'कंटेंट व्यू' में फ़ाइल लेते हैं, और 'फीचर्स व्यू' पर स्विच करते हैं ताकि आप एकल फाइल के लिए एसएसएल सेटिंग्स को संपादित कर सकें और 'एसएसएल की आवश्यकता' चेकबॉक्स को अक्षम कर सकें।

आईआईएस प्रबंधक को हेडर में फ़ाइल नाम दिखाना चाहिए।


मुझे लगता है कि 'साफ-सफाई' से आपका मतलब 300 रीडायरेक्ट के साथ है। here कई सारे सर्वर और भाषाओं के लिए कॉन्फ़िगर here


मुझे लगता है कि IIS-aid.com पर यहां वर्णित सबसे साफ तरीका है। यह केवल web.config है और इसलिए यदि आप सर्वर बदलते हैं तो आपको 403.4 कस्टम त्रुटि पृष्ठ या अन्य विशेष अनुमतियों के साथ चलने वाले सभी चरणों को याद रखने की आवश्यकता नहीं है, यह बस काम करता है।

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="HTTP to HTTPS redirect" stopProcessing="true">
          <match url="(.*)" />
            <conditions>
              <add input="{HTTPS}" pattern="off" ignoreCase="true" />
            </conditions>
            <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>




iis-7