SSL और www को .htaccess में मजबूर करना


13

मैं एसएसएल को बाध्य करने के लिए एक रास्ता ढूंढ रहा हूं और www

मैं दोनों को अलग-अलग करने में सक्षम हूं, लेकिन साथ-साथ मैं पुनर्निर्देशन के मुद्दों पर चल रहा हूं। इस प्रारूप में URL को हैंडल करते समय निम्न कोड काम करता है: http://example.comऔर ठीक से रीडायरेक्ट करता है https://www.example.comलेकिन जब आने वाले URL https://example.comयह है तो यह आगे नहीं आएगा https://www.example.com- कोई सुझाव?

संपादित करें: यह भी भेजना चाहिए http://www.example.comकरने के लिए https://www.example.com

RewriteCond %{REMOTE_ADDR} !127\.0\.0\.0
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} !^www.example\.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

जवाबों:


7

आंतरिक URL को फिर से लिखे जाने से रोकने के लिए पहली पंक्ति का उपयोग किया जाता है। इसके कारण अलग-अलग पृष्ठ प्रदर्शित हो सकते हैं, इसलिए मैंने इसे हटा दिया है।

यदि होस्ट example.comHTTPS से अधिक है या अनुरोध नहीं किया गया है, तो इसे फिर से लिखा जाएगा https://example.com/। यानी, उसे पुनः लिखता है http://example.com, http://www.example.comऔर https://example.comकरने के लिए https://www.example.comएक कार्रवाई में।

RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

Apache 2.2 के लिए mod_rewrite पर प्रलेखन

यदि आप उप-डोमेन पसंद करते हैं forum.example.com, तो पहला नियम जैसा होना चाहिए। अन्यथा, आप एक नकारात्मक मैच भी कर सकते हैं www.example.com



0

इसे इस्तेमाल करे:

RewriteCond %{REMOTE_ADDR} !127\.0\.0\.0
RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{HTTP_HOST} !^www.example\.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

0

आप निम्नलिखित पंक्तियों का भी उपयोग कर सकते हैं जिनका मैं उपयोग करता हूं और त्रुटिपूर्ण रूप से काम करता हूं।

(यदि आप CloudFlare का उपयोग नहीं करते हैं तो शीर्ष RewriteCond निकालें)

RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"' [OR]
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=302]

0

बस इसे मेरी साइट के लिए लागू किया गया है। एक जादू की तरह काम करता है! मेरे .htaccess फ़ाइल के शीर्ष पर जोड़ा गया। Www या http, http या https टाइप करने वाले लोगों के सभी उदाहरणों को रीडायरेक्ट करता है।

# BEGIN HTTPS Redirect
RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
# END HTTPS Redirect

0

मैंने ऊपर दिए गए सभी सुझावों का परीक्षण किया, लेकिन पूरे परिदृश्य को कवर नहीं किया।

मैं चाहता था कि सभी आगंतुक जाएँ https://www.example1.com/

अन्य उपयोगकर्ताओं द्वारा प्रदान किए गए कुछ कोड ने गैर-सुरक्षित और / या गैर-www URL को लेने के लिए काम किया https://www.example1.com/, हालांकि, उनमें से कोई भी https://example1.com"www" में परिवर्तित नहीं किया गया।

मेरे पास GoDaddy के साथ होस्ट की गई मेरी वेबसाइट है, अगर इससे कोई फर्क पड़ता है।

यह वह कोड है जो मेरे लिए काम करता है:

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www.example1\.com$ [OR]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example1.com/$1 [L,R=301]

अंतिम पंक्ति यह भी हो सकती है:

RewriteRule ^(.*)$ https://www.example1.com/$1 [R,L]

लेकिन मैंने इस संदेश को " स्थायी रूप से स्थानांतरित " करने के लिए "301" कोड का उपयोग किया इस उम्मीद में कि Google और शायद अन्य खोज इंजन पुराने लिंक को अपडेट करेंगे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.