क्या HTTP: // के किसी संस्करण का अपने HTTPS: // समतुल्य में जाने के सभी प्रयासों को पुनर्निर्देशित करने का एक साफ तरीका है?
क्या HTTP: // के किसी संस्करण का अपने HTTPS: // समतुल्य में जाने के सभी प्रयासों को पुनर्निर्देशित करने का एक साफ तरीका है?
जवाबों:
मुझे लगता है कि 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="Permanent" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
सबसे आसान और साफ समाधान मुझे मिला
एसएसएल सेटिंग्स में -> एसएसएल की आवश्यकता होती है
त्रुटि पृष्ठों में -> 403.4 त्रुटि पर -> HTTPS साइट पर पुनर्निर्देशित
त्रुटि पृष्ठों में -> सुविधाओं को संपादित करें सेटिंग्स ... -> स्थानीय अनुरोधों के लिए विस्तृत त्रुटि और दूरस्थ अनुरोध के लिए कस्टम त्रुटि पृष्ठ सेट करें
लाभ यह है कि इसके लिए कोड की अतिरिक्त लाइनों की आवश्यकता नहीं है। नकारात्मक पक्ष यह है कि यह आपको एक पूर्ण यूआरएल पर पुनर्निर्देशित करता है।
एक साफ तरीका केवल http -> https से केवल URL योजना को बदलता है और बाकी सभी चीजों को बराबर करता है। यह सर्वर-साइड होना चाहिए ताकि कोई ब्राउज़र समस्याएँ न हों।
JPPinto.com के पास चरण-दर-चरण निर्देश हैं कि यह कैसे किया जाता है, सिवाय इसके कि वे सर्वर-साइड रीडायरेक्ट के बजाय जावास्क्रिप्ट (HttpRedirect.htm) का उपयोग करते हैं। किसी कारण से, मैं IE को जावास्क्रिप्ट को नहीं मिला सकता है यदि आपके पास 'अनुकूल HTTP त्रुटि संदेश दिखाएँ' सक्षम है, जो डिफ़ॉल्ट रूप से चालू है। स्क्रिप्ट के साथ एक और बात यह है कि रास्ते में पुनर्निर्देशन एफएफ या क्रोम में भी काम नहीं करता है। स्क्रिप्ट हमेशा रूट पर रीडायरेक्ट होती है। (शायद मैंने कुछ याद किया है, क्योंकि इसे पथ पर पुनर्निर्देशित किया जाना चाहिए।)
इन कारणों से मैंने रीडायरेक्ट के लिए ASP पृष्ठ का उपयोग किया है। नकारात्मक पक्ष यह है कि यह सर्वर पर क्लासिक एएसपी को सक्षम करने की आवश्यकता है।
OpsanBlog में ASP लिपि है और निर्देश जो IIS6 के साथ अच्छी तरह से काम करते हैं।
मैं IIS7 के साथ इस पद्धति का उपयोग करके कुछ समस्याएँ है। IIS7 के बाद से उपयोगकर्ता इंटरफ़ेस समस्याएँ अधिकांशतः आसान हो जाती हैं।
IIS मैनेजर को हेडर में फाइल का नाम दिखाना चाहिए।
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:"));
}
मैं क्लासिक एस्प (इंट्रानेट) का उपयोग करता हूं और उन पृष्ठों पर जिन्हें लॉग इन करने के लिए लॉगऑन की आवश्यकता होती है, फ़ाइल में रीडायरेक्ट शामिल है:
if Request.ServerVariables("SERVER_PORT_SECURE") <> "1" or Request.ServerVariables("HTTPS") <> "on" then
Response.Redirect "https://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL")
end if
इस पाठ्यक्रम में GET या POST डेटा शामिल नहीं है। इसलिए प्रभाव में यह आपके सुरक्षित पृष्ठ पर एक साफ पुनर्निर्देशित है।