सत्यापन के बिना, लेकिन अपाचे पुनर्लेखन में मेरे अनुभव का उपयोग करते हुए, यह कॉन्फ़िगरेशन निम्न प्रतीत होता है:
- URI (सर्वर, पोर्ट या क्वेरी पैरामीटर नहीं) के 'पथ' भाग पर मेल करें, उदाहरण के लिए '/my/location/file.html'।
- यदि यह भाग '/' (फ़ॉरवर्ड-स्लैश) वर्ण पर समाप्त नहीं होता है, तो, -या- इसमें a 'शामिल नहीं है।' (डॉट) चरित्र।
- URI के पूर्ण पथ भाग का उपयोग करें और इसे अग्रेषित-स्लैश में जोड़ें।
- इस नए URI के लिए ब्राउज़र को निर्देशित करने के लिए एक HTTP 301 (स्थायी) रीडायरेक्ट भेजें।
यह निम्नलिखित परीक्षण मामलों में परिणाम देगा
/ -> /
/test -> /test/
/my/resource -> /my/resource/
/my/resource.type -> /my/resource.type
/edge.case/resource -> /edge.case/resource
इसलिए मुझे लगता है कि नियम में संसाधनों को जोड़ने के उद्देश्य हैं जो एक फाइल नहीं लगती हैं, लेकिन ऐसा लगता है कि यह एक किनारे का मामला है।
अगर एक संसाधन के साथ स्लैश नहीं जोड़ा जा रहा है '।' पथ के गैर-फ़ाइल हिस्से में (डॉट) चरित्र को नियमित अभिव्यक्ति में बदलना चाहिए:
# match paths which do not end with a slash, or do not resemble a file with an extension
RewriteCond %{REQUEST_URI} !(/$|\.[^/]+$)
# redirect permanently to the same uri with a slash
RewriteRule (.*) %{REQUEST_URI}/ [R=301]
/
और इसमें ".
" नहीं है, तो अनुरोध को एक के साथ जोड़कर पुनर्निर्देशित करें/
। इस नियम का संभावित उद्देश्य स्वचालित निर्देशिका अनुक्रमण को संभालना है।