2013-07-14 4 views
7

के माध्यम से https://www.xyz.com पर सभी http और https गैर-www URL को रीडायरेक्ट करें क्योंकि इसमें बहुत लंबा और जटिल कारण है (इसमें कॉर्पोरेट लाल टेप की कई परतें शामिल हैं जिसके परिणामस्वरूप कोई और कोई खरीद नहीं रहा है वाइल्डकार्ड एसएसएल प्रमाणपत्र मैंने अनुरोध किया है), मुझे सभी अनुरोधों को https://www.xyz.com पर रीडायरेक्ट करने के लिए एक डोमेन सेट अप करना होगा - www सबडोमेन के साथ सुरक्षित प्रोटोकॉल।htaccess

तो: http://xyz.com, http://www.xyz.com, और https://xyz.com सभी को https://www.xyz.com पर रीडायरेक्ट करना चाहिए।

मेरा। Htaccess-fu सबसे कमजोर है और मुझे यह काम करने के लिए प्रतीत नहीं होता है। नोट: होस्टिंग मीडिया मंदिर पर है यदि इससे कोई फर्क पड़ता है।

अब तक, मेरी .htaccess फाइल तो दिखाई देता है:

RewriteEngine On 
RewriteCond %{HTTPS} !^on$ 
RewriteRule (.*) https://www.xyz.com/$1 [R,L] 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

दोनों http://xyz.com और http://www.xyz.comhttps://www.xyz.com रीडायरेक्ट कर रहे हैं, तो शानदार। हालांकि, https://xyz.comनहींhttps://www.xyz.com को पुन: निर्देशित हो और इस तरह एक सुरक्षा चेतावनी पृष्ठ फेंकने है:

यह शायद वह साइट आप देख रहे हैं नहीं है!
आप xyz.com पहुंचने का प्रयास किया, लेकिन आप वास्तव में एक सर्वर के रूप में www.xyz.com में अपनी पहचान करने पर पहुंच गया। यह सर्वर पर गलत कॉन्फ़िगरेशन या कुछ और गंभीर द्वारा हो सकता है। आपके नेटवर्क पर एक हमलावर आपको xyz.com के नकली (और संभावित हानिकारक) संस्करण पर जाने की कोशिश कर रहा है।
आपको आगे बढ़ना नहीं चाहिए, खासकर यदि आपने इस साइट के लिए पहले कभी यह चेतावनी नहीं देखी है।

मुझे इस अंतिम कूल्हे को दूर करने में कोई मदद की सराहना की जाएगी!

उत्तर

5

यदि भविष्य में से कोई भी (भविष्य के हेल्लो लोग) इस मामले में ठोकर खाए, तो मैंने एक ही सवाल पूछा और सर्वर फॉल्ट पर इसका उत्तर दिया।

लघु संस्करण: असंभव।

लांग संस्करण: https://serverfault.com/questions/523199/redirect-all-http-and-https-non-www-urls-to-https-www-example-com-via-htaccess

8

यह बहुत संभव है। निम्नलिखित कोड का प्रयोग करें। यह मेरे लिए काम करता है।

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI}$1 [R=301,L] 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}$1 
+0

इसने मेरी समस्या हल की - धन्यवाद @ जुनाद एटिक – Andrew

+0

यह मेरे लिए काम नहीं करता है, क्योंकि मेरे पास www.mydomain.com और mydomain दोनों के लिए मेरा प्रमाण पत्र सक्षम नहीं था।स्कॉटी से जवाब प्रति कॉम। – alieninlondon

3

हालांकि यह समस्या बहुत पुरानी है।

यदि यह सही समस्या को हल करता है। यहां दिए गए कोड के बाद मदद नहीं मिली। मैंने कोशिश की और कोशिश की।

यह एक मेरे लिए काम किया:

 RewriteCond %{HTTPS} off 
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
    RewriteRule .* https://%1%{REQUEST_URI} [R=301,L] 
    RewriteCond %{HTTPS} off 
    RewriteCond %{HTTP_HOST} !^www\. [NC] 
    RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
    RewriteCond %{HTTPS} on 
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
    RewriteRule .* https://%1%{REQUEST_URI} [R=301,L] 

कोई भी लूप या अन्य त्रुटियों के बिना मेरे लिए समस्या का समाधान किया। शायद यह किसी और की मदद करेगा।

+0

इस समाधान ने कई वस्तुओं को आजमाने के लगभग 20 मिनट के बाद काम किया है, यह सही नहीं है, लेकिन बाकी सब कुछ गैर-http को https://www.www.example.com पर निर्देशित करता है whcih मैं समझ नहीं पाया! – Barry