कैसे HTTP उसी HTTP पर HTTPS पर पुनर्निर्देशित करें?


10

यहाँ मुझे क्या मिला है:

  • CentOS 5.4 (32-बिट)
  • स्थापित Apache httpd (सर्वर संस्करण: Apache / 2.2.11 (Unix))
  • mod_rewrite पहले से ही प्रस्तुत करता है

प्रश्न: कैसे सरल रीडायरेक्ट करने के लिए http://site.com को https://site.com नहीं VirtualHost परिभाषित करता है का उपयोग कर?

पुनश्च: बाद में एसएफ पर जवाब खोजने की कोशिश की, लेकिन अच्छा समाधान नहीं मिला।

धन्यवाद।

जवाबों:


9
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

2
RewriteRule ^(.*) https://%{HTTP_HOST}$1मेरे लिए ज्यादा मायने रखता है।
cregox

उस अनंत पाश तुम पर नहीं होगा?
अर्नेस्ट म्यूएलर

नहींं, बस इसका परीक्षण किया। यहां तक ​​कि यह डॉक्स के तहत कैसे इसकी सलाह है - इसके अंत में देखें।
cregox

1
जब मैं उन आदेशों को अपने .htaccess में सम्मिलित करता हूं, तो मुझे Apache 2.4.10 का उपयोग करके एक अनंत लूप मिलता है। और Cawas द्वारा सुझाए गए वेरिएंट ने मेरे URL को अजीब तरह से जकड़ लिया। मैंने आदेशों के एक अलग सेट की कोशिश की है: RewriteCond %{HTTP:X-Forwarded-Proto} !httpsऔर RewriteRule ^/?(.*) https://%{SERVER_NAME}%{REQUEST_URI}- जो क्रोम और फ़ायरफ़ॉक्स पर काम करता है, लेकिन सफारी और ओपेरा पर विफल रहता है। दिलचस्प बात यह है कि अगर मैं तीन पंक्तियों को ऊपर ले जाता हूं और छोड़ता RewriteEngine Onहूं तो मुझे अनंत लूप नहीं मिलता है, लेकिन यह अभी भी सफारी और ओपेरा में विफल रहता है (और क्रोम और फ़ायरफ़ॉक्स में काम करता है)।
पर्पलजैकेट

2

आप निर्देशिका के आधार पर mod_alias और रीडायरेक्ट का उपयोग कर सकते हैं । जुड़ा हुआ दस्तावेज़ अतिरिक्त विवरणों की पहचान करता है।

<Directory /path/to/site>
   Redirect /service https://foo2.example.com/service 
</Directory>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.