प्रमाणपत्र www और गैर- www https कवर करना होगा। कुछ प्रदाता के कर्ट www.xxxx.yyy दोनों के लिए कवर करते हैं, लेकिन xxxx.yyy के लिए केवल एक ही है।
पुनर्लेखन चालू:
RewriteCond %{SERVER_PORT} 443
RewriteCond %{HTTP_HOST} ^www[.].+$
RewriteRule ^(.*)$ https://xxxx.yyy/$1 [L,R=301]
प्रसंस्करण नहीं किया जा सकता गैर:
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://xxx.yyy/$1 [L,R=301]
केवल www https गैर- www https का उपयोग करें:
RewriteEngine On
सभी http उपयोग https बनाओ -www https, अन्यथा एक लूप होता है।
में [एल, आर = 301]:
- एल = तो नियम संसाधित किया गया था, किसी भी अधिक की प्रक्रिया नहीं है।
- आर = 301 = स्थायी रीडायरेक्ट करने के लिए ब्राउज़र/रोबोट बताता है।
अधिक सामान्य
एक अधिक सामान्य दृष्टिकोण - नहीं बंदरगाह पर निर्भर - है:
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^(.*)$ https://xxxx.yyy/$1 [R=301,QSA]
www
के साथ किसी भी यूआरएल इसे छोड़ बनाने के लिए।
RewriteCond %{HTTPS} !on
RewriteCond %{HTTPS} !1
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteRule ^(.*)$ https://xxxx.yyy/$1 [R=301,QSA]
किसी भी गैर https यूआरएल, यहां तक कि उन सिस्टम के लिए नीचे की ओर लोड बैलेंसर्स जो https ड्रॉप, https उपयोग से मजबूर करने के लिए।
ध्यान दें कि मैंने forwarded
विकल्पों का परीक्षण नहीं किया है, इसलिए उनके साथ किसी भी मुद्दे पर प्रतिक्रिया की सराहना करेंगे।यदि आपकी प्रणाली लोड-बैलेंसर के पीछे नहीं है तो उन पंक्तियों को छोड़ दिया जा सकता है।
HTTP_HOST को या नहीं
आप ${HTTP_HOST}
का उपयोग RewriteRule
में URL के भाग हो सकता है, या आप अपने स्पष्ट विहित डोमेन नाम पाठ (xxxx.yyy
ऊपर) का उपयोग कर सकते हैं।
डोमेन नाम निर्दिष्ट करना स्पष्ट रूप से सुनिश्चित करता है कि उपयोगकर्ता द्वारा आपूर्ति किए गए यूआरएल में कुछ मामूली-चरित्र चरित्र-झुकाव साधनों का उपयोग संभवतः आपकी साइट को कुछ ऐसा करने में चालित करने के लिए नहीं किया जा सकता है, या कम से कम यह सुनिश्चित करता है कि पता बार में उचित डोमेन नाम दिखाई देता है, भले ही यूआरएल स्ट्रिंग ने पृष्ठ खोला हो।
यह पता बार में उचित यूनिकोड वर्ण दिखाने के लिए punycode-encoded डोमेन को कनवर्ट करने में भी मदद कर सकता है।
मार्क एक सही जवाब पहले से ही! –