mod_rewrite को एक फ़ाइल प्रत्यय प्रकार के लिए उपनाम टाइप करें

मुझे उम्मीद है कि मैं इसे स्पष्ट रूप से पर्याप्त समझा सकता हूं, लेकिन अगर मुझे नहीं पता है और मैं स्पष्टीकरण देने की कोशिश करूंगा।

मैं वर्तमान में कोल्डफ्यूजन का उपयोग कर एक साइट विकसित कर रहा हूं और साइट पर ऐसा दिखने के लिए एक mod_rewrite नियम है जो PHP का उपयोग कर रहा है। Index.php के लिए कोई भी अनुरोध index.cfm द्वारा संसाधित हो जाता है (नियम मानचित्र * .php से * .cfm)।

यह बहुत अच्छा काम करता है - अब तक, बहुत अच्छा है। समस्या यह है कि अगर मैं index.cfm (या किसी भी कोल्डफ्यूजन पेज) से सीधे अनुरोध किया जाता है तो मैं 404 स्टेटस कोड वापस करना चाहता हूं।

यदि मैं mod_rewrite का उपयोग कर * .cfm फ़ाइलों तक पहुंच को अवरुद्ध करने का प्रयास करता हूं तो यह * .php के अनुरोधों के लिए 404 भी देता है।

मुझे लगता है कि मुझे .htaccess का उपयोग करने के बजाय अपना अपाचे कॉन्फ़िगरेशन बदलना पड़ सकता है

0
ro fr bn

3 उत्तर

आप 40 < नियम को छोड़ने के लिए S ध्वज का उपयोग कर सकते हैं, जैसे:

RewriteEngine on

# Do not separate these two rules so long as the first has S=1
RewriteRule (.*)\.php$ $1.cfm [S=1]
RewriteRule \.cfm$ - [R=404]

यदि आप उपनाम विकल्प का भी उपयोग कर रहे हैं तो आपको PT ध्वज भी जोड़ना चाहिए। विवरण के लिए mod_rewrite दस्तावेज़ीकरण देखें।

0
जोड़ा

उन नियमों को पोस्ट करें जो आपके पास पहले से शुरुआती बिंदु के रूप में हैं इसलिए लोगों को आपकी सहायता के लिए इसे फिर से बनाना नहीं है।

मैं उस नियम पर परीक्षण [एल] का सुझाव दूंगा जो .pp को .cfm फ़ाइलों को मैप करने की पहली चीज़ के रूप में मानचित्र करता है।

0
जोड़ा

आपको दो अलग-अलग समूहों के पुनर्लेखन नियमों का उपयोग करना होगा, एक .php के लिए, दूसरा .chm के लिए और उन्हें रिवाइटकॉन्ड% {REQUEST_FILENAME} के साथ परस्पर विशिष्टताएं बनाना होगा। और jj33 द्वारा सुझाए गए ध्वज [एल] का उपयोग करें।

आप अपने नियमों को .htaccess में रख सकते हैं।

0
जोड़ा