mod-rewrite ट्यूटोरियल
मॉड-रीराइट के साथ शुरुआत करना
खोज…
टिप्पणियों
mod_rewrite Apache का एक मॉड्यूल है। इस मॉड्यूल का उपयोग आंतरिक पुनर्लेखन के लिए किया जाता है (बाहरी अनुरोधों को एक अलग संसाधन लोड करना चाहिए) और बाहरी पुनर्निर्देश (बाहरी अनुरोध जो ग्राहक को एक अलग यूआरएल बनाना चाहिए)।
mod_rewrite mod_alias की तुलना में आंतरिक पुनर्लेखन पर एक महीन नियंत्रण प्रदान करता है, क्योंकि बाद वाले केवल फ़ाइल नाम के लिए अनुरोध कर सकते हैं। mod_rewrite एक्सेस कंट्रोल के कुछ साधन प्रदान करता है, लेकिन यह आमतौर पर mod_authz_core और mod_authz_host के साथ बेहतर होता है। mod_rewrite mod_proxy के साथ कुछ एकीकरण प्रदान करता है, लेकिन प्रदर्शन कारणों से इस एकीकरण का उपयोग नहीं किया जाना चाहिए और इसके बजाय बाद के मॉड्यूल के ProxyPass
और ProxyPassMatch
का उपयोग किया जाना चाहिए।
mod_rewrite को एक ऐसे तरीके से स्थापित किया जा सकता है जो निर्देशों को गतिशील (.htaccess) कॉन्फ़िगरेशन फ़ाइलों में रखने की अनुमति देता है। प्रदर्शन कारणों से, जब भी संभव हो, हमेशा स्थिर (httpd.conf) कॉन्फ़िगरेशन फ़ाइल का उपयोग करना चाहिए।
संस्करण
संस्करण | रिलीज़ की तारीख |
---|---|
2.2 | 2015/07/17 |
2.4 | 2016/07/05 |
स्थापना
mod_rewrite को Apache सर्वर पर उपयोग करने से पहले सक्षम किया जाना चाहिए।
Debian / Ubuntu
a2enmod rewrite
फिर अपाचे को service apache2 restart
अपाचे 2 रिस्टार्ट के साथ फिर से service apache2 restart
सामान्य मामला
स्थिर कॉन्फ़िगरेशन फ़ाइल (जैसे httpd.conf
) में निम्न पंक्ति जोड़ें या असहज करें:
LoadModule rewrite_module modules/mod_rewrite.so
फिर अपाचे को पुनरारंभ करें।
स्थिर कॉन्फ़िगरेशन फ़ाइल में mod_rewrite का उपयोग करना
किसी भी अन्य mod_rewrite निर्देश (RewriteRule, RewriteCond, RewriteBase या RewriteMap) का उपयोग करने से पहले निम्नलिखित निर्देश जोड़ें।
RewriteEngine on
डिफ़ॉल्ट रूप से इंजन बंद है। इंजन बंद होने के दौरान mod_rewrite निर्देशों को अनदेखा किया गया। वर्चुअल होस्ट का उपयोग करते समय वर्चुअल होस्ट के संदर्भ में, या लागू होने पर विशिष्ट निर्देशिका संदर्भों से इसे सक्षम करें।
डायनामिक कॉन्फ़िगरेशन फ़ाइलों से mod_rewrite का उपयोग करना
महत्वपूर्ण: डायनेमिक कॉन्फ़िगरेशन फ़ाइलों (.htaccess) का उपयोग करना एक बड़ा प्रदर्शन हिट है। जब आपके पास स्थिर कॉन्फ़िगरेशन फ़ाइल (httpd.conf या कुछ इसी तरह) का उपयोग होता है, तो आपको इसके बजाय इसका उपयोग करना चाहिए।
स्थिर कॉन्फ़िगरेशन फ़ाइल में, डायनेमिक कॉन्फ़िगरेशन फ़ाइलों को AllowOverride
का उपयोग करके "Fileinfo" को ओवरराइड करने की अनुमति दें। इस निर्देश को निर्देशिका संदर्भ में रखा जाना चाहिए:
AllowOverride FileInfo
डायनामिक कॉन्फ़िगरेशन फ़ाइलों के लिए उपयोग किया जाने वाला फ़ाइल नाम AccessFileName
निर्देश द्वारा नियंत्रित होता है। डिफ़ॉल्ट रूप से, डायनेमिक कॉन्फ़िगरेशन फ़ाइलें छिपी हुई फ़ाइलें होती हैं जिन्हें .htaccess
कहते हैं।
Mod_rewrite निर्देशों वाले प्रत्येक डायनेमिक कॉन्फ़िगरेशन फ़ाइल के शीर्ष पर, निम्न निर्देश जोड़ें:
RewriteEngine on