[Apache] मैं mod_rewrite में एक निर्देशिका को कैसे अनदेखा कर सकता हूँ?


Answers

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

यह कहता है कि यह एक मौजूदा फ़ाइल या निर्देशिका है, इसे छूने नहीं। आप site.com/vip तक पहुंचने में सक्षम होना चाहिए और कोई भी फिर से लिखना नियम नहीं होना चाहिए।

Question

मैं मॉडर्राइट नियमों को डायरेक्टरी vip छोड़ने की कोशिश कर रहा हूं। मैंने कई चीजों की कोशिश की है जैसा कि आप नीचे देख सकते हैं, लेकिन कोई फायदा नहीं हुआ।

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#RewriteRule ^vip$ - [PT]
RewriteRule ^vip/.$ - [PT]
#RewriteCond %{REQUEST_URI} !/vip 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

मैं पूरी तरह से /vip/ निर्देशिका को अनदेखा करने के लिए मॉडर्र्राइट कैसे प्राप्त करूं ताकि सभी अनुरोध सीधे फ़ोल्डर में आए हों?

अद्यतन करें:

स्पष्टता के अंक के रूप में:

  • यह Dreamhost पर होस्ट किया गया है
  • फ़ोल्डर एक WordPress निर्देशिका के भीतर हैं
  • / वीआईपी / फ़ोल्डर में एक वेबडिव। htaccess आदि शामिल है (हालांकि मुझे नहीं लगता कि यह महत्वपूर्ण है



अपने कोड के इस भाग को बदलने की कोशिश करें:

RewriteRule ^vip/.$ - [PT]

...निम्नलिखित के साथ:

RewriteCond %{REQUEST_URI} !(vip) [NC]

इससे चीजों को ठीक करना चाहिए




यह काम ...

RewriteRule ^vip - [L,NC]

लेकिन यह सुनिश्चित करें कि यह पहला नियम है

रीव्रेटइंजिन चालू

अर्थात

ErrorDocument 404 /page-not-found.html

RewriteEngine on

RewriteRule ^vip - [L,NC]

AddType application/x-httpd-php .html .htm

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 

etc



आपने उल्लेख किया है कि निर्देशिका में पहले से ही .htaccess फ़ाइल है जिसे आप अनदेखा करना चाहते हैं - आप उपयोग कर सकते हैं

RewriteEngine off

उस। Htaccess में mod_rewrite का उपयोग बंद करने के लिए (यदि आप उस फ़ोल्डर में mod_rewrite का उपयोग कर रहे हैं तो सुनिश्चित नहीं हैं, अगर आप तब से तब तक मदद नहीं करेंगे जब से आप इसे बंद नहीं कर सकते हैं)।




मेरे मामले में, ब्रेंटनस्ट्रैन (और मैं देखता हूं कि मैटदुसा भी एक ही विचार था) सही था ... मैं उनका जवाब देना चाहता था, लेकिन यहां नए होने के नाते मेरे पास "प्रतिष्ठा" नहीं है, इसलिए मेरे पास है एक पूर्ण उत्तर लिखने के लिए, मुझे इस बात पर ज़ोर देना है कि मुझे क्या लगता है कि यहां वास्तविक कुंजी है।

इनमें से कई उत्तर वर्डप्रेस सूचकांक.एफ़पीपी को इस्तेमाल करने से सफलतापूर्वक बंद कर देंगे ... लेकिन कई मामलों में, ऐसा करने का कारण यह है कि वास्तविक पृष्ठों के साथ एक वास्तविक निर्देशिका है जिसमें आप सीधे प्रदर्शित करना चाहते हैं, और

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

लाइनें पहले से ही उस पर ध्यान देते हैं, इसलिए उन समाधानों में से अधिकांश मेरे जैसे मामले में व्यथित हैं।

कुंजी ब्रेंटनस्ट्रैन की अंतर्दृष्टि थी कि त्रुटि एक द्वितीयक प्रभाव था, पासवर्ड-सुरक्षा की वजह से मैं डायरेक्टरी के अंदर सीधे सीधा प्रदर्शित करने की कोशिश कर रहा था। में डालने के द्वारा

ErrorDocument 401 /err.txt
ErrorDocument 403 /err.txt

लाइनों और त्रुटि पृष्ठों को बनाने (मैं वास्तव में err401.html और err403.html बनाया और अधिक जानकारीपूर्ण त्रुटि संदेश बनाया) मैंने 404 प्रतिक्रिया उत्पन्न की, जब 401 प्रमाणीकरण की आवश्यकता के लिए प्रदर्शित करने के लिए कोई पृष्ठ नहीं मिला, और तब फ़ोल्डर काम किया जैसा कि अपेक्षित था ... एक अपाचे लॉगिन संवाद दिखा रहा है, फिर फ़ोल्डर की सामग्री, या विफलता पर, मेरी त्रुटि 401 पृष्ठ