.htaccess जनरेटर
टकराव जाँच के साथ Apache .htaccess रीडायरेक्ट, कैश और सुरक्षा नियम बनाएँ
त्रुटियाँ: 0 · चेतावनियाँ: 0 · रीडायरेक्ट: 0
संबंधित टूल्स
यह क्या बनाता है
यह जनरेटर आम रीडायरेक्ट, परफ़ॉर्मेंस और सुरक्षा ज़रूरतों के लिए Apache 2.4 की .htaccess फ़ाइल लिखता है: HTTPS ज़रूरी करना, एक कैनोनिकल होस्ट, अंतिम स्लैश और index.html की सफ़ाई, कस्टम 301/302/307/308 रीडायरेक्ट, gzip कम्प्रेशन, Expires कैश प्रीसेट, फ़ोल्डर सूची और डॉट फ़ाइलों की सुरक्षा, बुनियादी सुरक्षा हेडर, वैकल्पिक HSTS और कस्टम एरर पेज। हर हिस्से में टिप्पणी होती है और क्रम हमेशा एक जैसा रहता है, ताकि बदलाव आसानी से पढ़े जा सकें।
टकराव की जाँच
हर रीडायरेक्ट लिखने से पहले जाँचा जाता है: गलत स्रोत, असुरक्षित या अनपेक्षित गंतव्य प्रोटोकॉल, डुप्लिकेट, खुद पर रीडायरेक्ट, A से B और फिर A पर लौटने वाले लूप, और एक अतिरिक्त कदम जोड़ने वाली चेन। लूप बनाने वाले या कभी न चलने वाले नियम फ़ाइल से बाहर रहते हैं और नतीजों में दिखते हैं। कैनोनिकल होस्ट और अंतिम स्लैश एक ही विकल्प चुनने वाले हैं, इसलिए www जोड़ें और www हटाएँ जैसे विरोधी नियम एक साथ नहीं चल सकते।
Apache की ज़रूरी बारीकियाँ
सभी रीराइट नियम एक ही IfModule mod_rewrite ब्लॉक में रहते हैं, जिसमें RewriteEngine On सिर्फ़ एक बार आता है। HTTPS और होस्ट का बदलाव एक ही रीडायरेक्ट में होता है, अंतिम स्लैश वाले नियम असली फ़ाइलों और फ़ोल्डरों को छोड़ देते हैं, और स्लैश व index रीडायरेक्ट सिर्फ़ GET और HEAD अनुरोधों पर लागू होते हैं। एक्सेस कंट्रोल के लिए Require all denied इस्तेमाल होता है, पुराना Order और Deny सिंटैक्स कभी नहीं। मॉड्यूल पर निर्भर ब्लॉक IfModule में लिपटे रहते हैं, इसलिए मॉड्यूल न होने पर साइट नहीं टूटती, सिर्फ़ वह ब्लॉक छूट जाता है।
डिप्लॉय करने से पहले
.htaccess तभी काम करती है जब सर्वर की AllowOverride सेटिंग इन निर्देशों की अनुमति दे; वरना Apache 500 लौटाता है। फ़ाइल को डॉक्यूमेंट रूट में रखें, क्योंकि कस्टम रीडायरेक्ट के पाथ उसी के सापेक्ष होते हैं। TLS समाप्त करने वाले प्रॉक्सी या CDN के पीछे HTTPS नियम असली स्कीम नहीं देख पाता और लूप में जा सकता है। HSTS तभी चालू करें जब HTTPS हर जगह चल रहा हो, और छोटे max-age से शुरू करें। ब्राउज़र डाउनलोड को htaccess.txt नाम से सेव करते हैं; सर्वर पर इसका नाम .htaccess कर दें। सब कुछ आपके ब्राउज़र में चलता है और कुछ भी अपलोड नहीं होता।
