mod-rewrite
पुनर्लेखन नियमों के संदर्भ
खोज…
टिप्पणियों
इस विषय में उन दो संदर्भों का वर्णन किया गया है, जिसमें RewriteRule
का उपयोग किया जा सकता है। RewriteEngine on
छोड़ने के उदाहरणों में, यह माना जाता है कि यह निर्देश उस उदाहरण से पहले हुआ है।
प्रति-निर्देशिका संदर्भ में नियमों को फिर से लिखना
प्रति-निर्देशिका संदर्भ <Directory>
और </Directory>
टैग के बीच स्थिर कॉन्फ़िगरेशन फ़ाइल का एक हिस्सा है। डायनेमिक कॉन्फ़िगरेशन फ़ाइलों की संपूर्ण सामग्री उस फ़ोल्डर के प्रति-निर्देशिका संदर्भ में है जिसमें .htaccess रहता है।
RewriteRule
प्रति-डायरेक्टरी संदर्भ में प्रोटोकॉल, होस्टनाम, पोर्ट और डायरेक्टरी के उपसर्ग के बाद यूरल के हिस्से से मेल खाता है जिसमें वे निवास करते हैं, और क्वेरी स्ट्रिंग से पहले।
स्थिर विन्यास फाइल में
निम्नलिखित नियम यूआरएल पर प्रयोग किया जाता है http://example.com/foo?id=1
, की पहली बहस में regex RewriteRule
के खिलाफ मिलान किया जाता है foo
। प्रोटोकॉल ( http
), hostname ( example.com
) और इस निर्देशिका के लिए उपसर्ग ( /
) हटा दिए जाते हैं। दूसरे छोर पर, क्वेरी स्ट्रिंग ( ?id=1
) भी हटा दी जाती है।
<Directory "/">
RewriteRule ^foo$ bar [L]
</Directory>
निम्नलिखित उदाहरण में, url http://example.com/topic/15-my-topic-name
का उपयोग करते हुए, RewriteRule
के पहले तर्क को topic/15-my-topic-name
मिलान किया जाएगा:
<Directory "/topic/">
RewriteRule ^topic/([0-9]+)-[^/]*/?$ topics.php?id=$1 [L]
</Directory>
डायनेमिक कॉन्फ़िगरेशन फ़ाइल में
जब निम्न नियम को एक .htaccess
फ़ाइल में www-root फ़ोल्डर में रखा जाता है और फिर url http://example.com/foo?id=1
पर उपयोग किया जाता है, तो पहला regex foo
विरुद्ध मिलान किया जाता है।
RewriteRule ^foo$ bar [L]
प्रति-निर्देशिका संदर्भ में, मिलान किया गया url कभी a
/
शुरू नहीं होता है। इस तरह के संदर्भ में,RewriteRule ^/
साथ शुरू होने वाला एक निर्देश कभी भी कुछ भी मेल नहीं खाएगा।
वर्चुअल होस्ट संदर्भ में नियम फिर से लिखें
वर्चुअल होस्ट संदर्भ <VirtualHost>
और </VirtualHost>
टैग के बीच स्थिर कॉन्फ़िगरेशन फ़ाइल का एक हिस्सा है।
प्रोटोकॉल, होस्टनाम और पोर्ट के बाद और क्वेरी स्ट्रिंग से पहले एक यूआरएल के भाग के खिलाफ वर्चुअल होस्ट संदर्भ मैच में RewriteRule
का मिलान।
निम्नलिखित नियम यूआरएल के लिए प्रयोग किया जाता है http://example.com/foo?id=1
, की पहली बहस में regex RewriteRule
के खिलाफ मिलान किया जाता है /foo
।
<VirtualHost 1.2.3.4:80>
ServerName example.com
RewriteEngine on
RewriteRule ^/foo$ /bar [L]
</VirtualHost>