सभी http: // अनुरोध को https: // पर पुनर्निर्देशित करें


22

इससे पहले मैंने यह सवाल पोस्ट किया है: /programming/36104047/how-to-redirect-all-http-requests-to-https-on-magento लेकिन कोई प्रतिक्रिया नहीं मिली।

यहाँ मेरी साइट URL है: www.trendy-mode.nl यह आपको पुनर्निर्देशित करेगा: https://www.trendy-mode.nl/

अब समस्या मेनू लिंक है या कोई अन्य उप-लिंक https://

EX के साथ पुनर्निर्देशित नहीं हैं :
मेनू है जैसे - NIEUW | KLEDING | SCHOENEN | ACCESSOIRES आदि
यदि आप NIEUW मेनू पर क्लिक करते हैं, तो एक नया पेज खुलेगा, लेकिन इसके साथ रीडायरेक्ट नहीं होगाhttps://

मैंने बहुत से प्रयास किए हैं। यहाँ कोई भी इस पर मेरी मदद करने के लिए?

आपका अग्रिम में ही बहुत धन्यवाद!

जवाबों:


30

असुरक्षित बेस url को https में बदलने से सभी लिंक बदल जाएंगे और गैर-https अनुरोधों को https://example.com/ (होम पेज) पर रीडायरेक्ट कर दिया जाएगा , क्योंकि आधार URL सत्यापन विफल होने पर Magento क्या करता है।

तो यह एक अच्छी शुरुआत है लेकिन http://example.com/foo/ को https://example.com/foo/ पर भी रीडायरेक्ट करने के लिए आपको इसे वेबसर्वर रीडायरेक्ट के माध्यम से करने की आवश्यकता है।

उदाहरण के लिए, अपने शीर्ष पर निम्न कोड जोड़ें .htaccess:

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

या यदि आप वार्निश जैसे रिवर्स प्रॉक्सी का उपयोग करते हैं:

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

ऐसा इसलिए है क्योंकि वार्निश से मैगेंटो तक के अनुरोध एसएसएल (एचटीटीपी) के बिना होंगे, लेकिन वार्निश एक्सटी-फॉरवर्डेड-प्रोटो हेडर को "https" पर सेट करता है यदि मूल अनुरोध एसएसएल (एचटीटीपीएस) के साथ किया गया था।


@ अभिषेक मैंने सिर्फ आपकी साइट का परीक्षण किया है और चूंकि यह अभी तक काम नहीं कर रहा है - ऊपर फैबियन निर्देश सही हैं .. लेकिन यह भी कहना चाहिए कि इन 2 लाइनों को आपके मैग्नेटो इंस्टॉलेशन की जड़ में .htaccess फ़ाइल में जोड़ा जाना चाहिए, लेकिन शीर्ष पर (आमतौर पर नहीं) ) लेकिन जैसा कि नीचे बताया गया है, ठीक उसके बाद RewriteEngine On। जिस तरह से मैंने किया है वह मेरी दूसरी पंक्ति में थोड़ा अलग है; RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
पीटर Svegrup

क्या किसी पृष्ठ को पूरी तरह से https पर ले जाने के बाद Google पृष्ठ रैंक पर प्रतिकूल प्रभाव का अनुभव हुआ है?
पेज

10

पूर्णता के लिए हम भी कुछ इसी तरह की चीज करते हैं जो fschmengler ने कुछ परिवर्धन के साथ सुझाया है;

RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_METHOD} !=POST
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

हम इसे नीचे .htaccess के अनुभाग के अंदर रखते हैं RewriteEngine On


9

बैकएंड में सुरक्षित और असुरक्षित के लिए अपना आधार यूआरएल सेट करें। बैकएंड में फ्रंटएंड में सिक्योर url के उपयोग पर हां सेट करें।

फिर अपने एप्लिकेशन / etc / local.xml को संपादित करें और इसे शामिल करें

<?xml version="1.0"?>
<config>
  <frontend>
     <secure_url>
      <all>/</all>
     </secure_url>
   </frontend>
</config>

या कम से कम XML ट्री फ्रंटेंड को कॉन्फ़िगर करें और कॉन्फिग टैग के बीच कम करें।


इससे मेरी समस्या ठीक हो गई। मैंने सब कुछ सही सेट कर दिया था लेकिन कुछ यूआरएल अभी भी https के बजाय http का उपयोग कर रहे थे।
म्यूटिउल

मैं url को https से http तक रीडायरेक्ट करना चाहता हूं। तो क्या आपके पास इसके बारे में कोई विचार है?
सरफराज सिपाई

5

सुनिश्चित करें System > Configuration > Web > url_options > "Auto-redirect to Base URL = No"। यह yesसमस्या के लिए निर्धारित किया गया था और इसका कारण बना।

कोड को .htaccess फ़ाइल के नीचे रखें।

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

4

मुझे लगता है कि मैगेंटो के बाद से गैर-सुरक्षित आधार url को https में बदलने का सबसे आसान तरीका इस url के सभी "गैर-सुरक्षित" अनुरोधों को पुनर्निर्देशित करता है और इस यूआरएल के साथ लिंक भी बनाता है।

आप सिस्टम के तहत बेस यूआरएल को बदल सकते हैं -> कॉन्फ़िगरेशन -> सामान्य -> ​​वेब


आपके रिप्ले के लिए धन्यवाद .. मैंने ऐसा किया था लेकिन अब यदि आप इस लिंक को खोलते हैं: www.trendy-mode.nl/damesschoenen/slippers यह आपको होमपेज पर पहुंचा देगा। कोई उपाय है?
अभिषेक कुंभानी

हम्म अजीब बात है :) क्या आपको बेस यूआरएल में अनुगामी स्लेश का मन था? मुझे लगता है कि यह मामला वास्तव में दिलचस्प है क्योंकि यह भविष्य में (या शायद पहले से ही अब?) के लिए प्रासंगिक होने की संभावना है, जो कि https का उपयोग करके पूरे पृष्ठ का होना चाहिए। मैं कल अपने सहकर्मी से पूछ सकता हूं क्योंकि उसने पहले से ही एक Magento की दुकान के लिए ऐसा किया था
डेविड वेरहोलेन

हालाँकि fschmengler के समाधान से मुझे लगता है कि काम करना चाहिए, @Michael का जवाब ऐसा करने का सही तरीका लगता है अगर यह काम करता है
David Verholen

वैसे fschmenglers का जवाब गलत नहीं है। मैं सिर्फ Magentos अपडेट रणनीति से नाराज हूं क्योंकि यह .htaccess और index.php को छूती है, लेकिन local.xml को नहीं। तो यह
माइकल

2

अपाचे डॉक्स एक पुनर्लेखन का उपयोग कर के खिलाफ सलाह देते हैं:

httpURL को पुनर्निर्देशित करने के लिए https, निम्न कार्य करें:

 <VirtualHost *:80>
     ServerName www.example.com
     Redirect / https://www.example.com/
 </VirtualHost>

 <VirtualHost *:443>
     ServerName www.example.com
     # ... SSL configuration goes here
 </VirtualHost>

यह स्निपेट मुख्य सर्वर विन्यास फाइल में जाना चाहिए, नहीं में .htaccessके रूप में प्रश्न में पूछा।

यह लेख शायद सवाल पूछने और जवाब देने के बाद ही सामने आया होगा, लेकिन लगता है कि यह वर्तमान रास्ता है।


0

.Htaccess फ़ाइल के शीर्ष पर इस कोड को जोड़ें

RewriteEngine On
RewriteCond %{HTTPS} off
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included, if not
# the subsequent rule will catch it.
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
# [NC] is a case-insensitive match
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.