"पुनर्निर्देशित स्थायी" बनाम mod_rewrite RewriteRule के बीच अंतर


9

यह एक अपाचे httpd 2.2 सर्वर है।

हमें चाहिए कि HTTPS द्वारा इस वेबसर्वर तक पहुंच को एन्क्रिप्ट किया जाए।

जब वेब क्लाइंट http://www.example.org/ $ foo (पोर्ट 80) पर मेरी साइट पर आते हैं , तो मैं उनके अनुरोध को HTTPS एन्क्रिप्टेड वेबसाइट https://www.example.org/ $ foo पर पुनर्निर्देशित करना चाहता हूं ।

ऐसा करने के दो सामान्य तरीके प्रतीत होते हैं:

पहली विधि mod_alias से ' पुनर्निर्देशन ' निर्देश का उपयोग करती है:

<VirtualHost *:80>
    Redirect permanent / https://www.example.org/
</VirtualHost>

दूसरी विधि mod_rewrite का उपयोग करती है:

<VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

"रीडायरेक्ट स्थायी" और mod_rewrite श्लोक में क्या अंतर है। क्या एक बेहतर है तो दूसरा?

जवाबों:


8

डिफ़ॉल्ट रूप से mod_rewrite "302 मिला" पुनर्निर्देश करता है, जो अस्थायी हैं। बाकी सब कुछ समान है, Redirect permanentके बराबर है RewriteRule <blah> [R=permanent]


वास्तव में नहीं, Redirectनिर्देश http से https तक रीडायरेक्ट को बेहतर तरीके से हैंडल करता है। स्टीफन की टिप्पणी नीचे देखें और Apache प्रलेखन के इस भाग की जाँच करें: httpd.apache.org/docs/current/rewrite/avoid.html#redirect
Gondy

7

क्या एक बेहतर है तो दूसरा?

अपाचे अब के उपयोग की सिफारिश Redirectसे mod_aliasके बजाय का उपयोग कर RewriteRuleसे mod_rewrite। देखें https://httpd.apache.org/docs/current/rewrite/avoid.html#redirect , जो कहता है:

mod_rewrite को एक अंतिम उपाय माना जाना चाहिए, जब अन्य विकल्प वांछित पाए जाते हैं। सरल विकल्प होने पर इसका उपयोग करने से कॉन्फ़िगरेशन की ओर जाता है जो भ्रामक, नाजुक और बनाए रखने में कठिन हैं।


5

खोज इंजन एक स्थायी पुनर्निर्देशन देखेंगे और तदनुसार अपने अनुक्रमित को अपडेट करेंगे।


> एक बेहतर है तो दूसरा?
स्टीफन लासिवस्की
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.