पुनर्लेखन में दो भाग हैं। पहला व्यक्ति निर्दिष्ट करता है कि यदि अनुरोध किया गया फ़ाइल नाम 0 (-s
) से अधिक आकार वाला एक नियमित फ़ाइल है, तो एक प्रतीकात्मक लिंक (-l
) या एक निर्देशिका (-d
), कहीं भी फिर से लिखें, उदाहरण के लिए। कोई कदम मत उठाना। [NC,L]
का अर्थ है कि नियम गैर-केस संवेदनशील है और अंतिम नियम यह है कि ये शर्तें मेल खाते हैं।
अन्य सभी अनुरोध /vote/public/index.php
पर अग्रेषित किए गए हैं।
इस पुनर्लेख का उद्देश्य यह है कि एक वास्तविक, मौजूदा फ़ाइल बिना किसी हस्तक्षेप के सर्वर से प्राप्त की जा सकती है। पहले नियम के बिना, प्रत्येक फ़ाइल अनुरोध (सीएसएस और जेएस फाइलें, इमेज इत्यादि) index.php
पर जाएंगे जो गड़बड़ चीजों को बहुत बुरी तरह से खराब कर देगा।
आमतौर पर यह एक घोषणा में लिखा गया है, हालांकि। आप की स्थिति नकारना कर सकते हैं, और फिर [OR]
statemens भी बाहर ले जाया जा सकता है:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /vote/public/index.php [NC,L]
यह मूल बयान के बराबर है।
स्रोत
2010-01-15 20:24:26
@Tatu Ulmanen: क्या आप कृपया बता सकते हैं कि 'पुनर्लेखन% {REQUEST_FILENAME} -f' का क्या अर्थ होगा? क्या यह सिर्फ "आकार" है कि विकल्प '-s' और' -f' में भिन्न हैं? और नियमित फाइलें क्या होंगी (बाइनरी नहीं?)? –