[php] .htaccess और mod_rewrite का उपयोग कर SSL / https को मजबूर करें



3 Answers

मुझे एक mod_rewrite समाधान मिला जो दोनों प्रॉक्सी और असम्पीडित सर्वरों के लिए अच्छा काम करता है।

यदि आप क्लाउडफ्लारे, एडब्ल्यूएस लोचदार लोड संतुलन, हेरोकू, ओपनशफ्ट या किसी अन्य क्लाउड / पास समाधान का उपयोग कर रहे हैं और आप सामान्य HTTPS रीडायरेक्ट के साथ रीडायरेक्ट लूप का अनुभव कर रहे हैं, तो इसके बजाय निम्न स्निपेट आज़माएं।

RewriteEngine On

# If we receive a forwarded http request from a proxy...
RewriteCond %{HTTP:X-Forwarded-Proto} =http [OR]

# ...or just a plain old http request directly from the client
RewriteCond %{HTTP:X-Forwarded-Proto} =""
RewriteCond %{HTTPS} !=on

# Redirect to https version
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Question

PHP में विशिष्ट .htaccess और mod_rewrite पृष्ठ का उपयोग करके मैं SSL / https पर कैसे मजबूर कर सकता हूं।




मॉड-रीराइट आधारित समाधान:

Htaccess में निम्न कोड का उपयोग स्वचालित रूप से https के सभी http अनुरोधों को आगे बढ़ाएं।

RewriteEngine on

RewriteCond %{HTTPS}::%{HTTP_HOST} ^off::(?:www\.)?(.+)$
RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R]

यह आपके गैर-www और www http अनुरोधों को https के www संस्करण पर रीडायरेक्ट करेगा।

एक और समाधान (अपाचे 2.4 *)

RewriteEngine on

RewriteCond %{REQUEST_SCHEME}::%{HTTP_HOST} ^http::(?:www\.)?(.+)$
RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R]

यह अपाचे के निचले संस्करणों पर काम नहीं करता है क्योंकि% {REQUEST_SCHEME} चर 2.4 के बाद से मॉड-रीराइट में जोड़ा गया था।




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

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]



केवल Apache .htaccess के साथ SSL को मजबूर करने के लिए आप इसका उपयोग कर सकते हैं

SSLOptions +StrictRequire
SSLRequireSSL

उपरोक्त उत्तर को पुनर्निर्देशित करने के लिए सही है




Related