2012-12-20 15 views
10

मैं एक सीएमएस निम्नलिखित htaccess के साथ अपने डोमेन की जड़ में स्थापित छोड़कर index.php के लिए:इनको सभी requestes अनुप्रेषित उप फ़ोल्डर

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

यह index.php के लिए सब कुछ रीडायरेक्ट करने के लिए अनुकूल यूआरएल का ख्याल रखता है । मेरी समस्या यह है कि मेरे पास एक उप-फ़ोल्डर है जिसमें एक और सीएमएस है। मुझे उप-फ़ोल्डर के अनुरोधों को index.php के बजाय उचित फ़ोल्डर में रीडायरेक्ट करने की आवश्यकता है।

मैंने कोशिश की लेकिन यह निम्न

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond $1 !^(sub-folder) 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

किसी को भी मदद कर सकते हैं काम करने के लिए प्रतीत नहीं होता?

धन्यवाद

उत्तर

15

आप ठीक से सत्यापित करना चाहिए अगर अनुरोध URI उप फ़ोल्डर

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !/subfolder 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

से मेल खाते हैं किसी भी मामले में, पहले दो RewriteCond का अर्थ है: यदि अनुरोध फ़ाइल नाम एक फ़ाइल या एक निर्देशिका नहीं है। जिसका अर्थ है कि यदि आप जिस फ़ाइल को संदर्भित कर रहे हैं वह सब फ़ोल्डर में है और उप फ़ोल्डर आपके डॉक्रूट में है, तो आपको कुछ भी करने की आवश्यकता नहीं है।

अगर अब भी काम नहीं करेगा, लॉग सक्षम करने से आप मदद कर सकता है:

RewriteLog "/web/logs/mywebsite.rewrite.log" 
RewriteLogLevel 9 
RewriteEngine On 

से बचने के उत्पादन

में इस लॉग स्तर नाटकीय रूप से अपने अपाचे सर्वर धीमी हो जाएगी के लिए एक उच्च मूल्य का उपयोग करना! केवल डीबगिंग के लिए 2 से अधिक स्तर पर पुनर्लेखन लॉगफाइल का उपयोग करें!

+0

किसी भी तरह यह काम नहीं कर रहा है:/ – jribeiro

+0

मेरा बुरा। अच्छा कर रहा है – jribeiro

संबंधित मुद्दे