2011-12-30 7 views
45

से इनकार करते हैं मैं हाल ही में अपनी परियोजना को साफ कर रहा हूं। मेरे पास मूल निर्देशिका में एक मुख्य। Htaccess है और 6 अन्य। उनमें से 5 Options -Indexes चलाया गया था, जिसे मैंने किसी भी निर्देशिका को देखने की इजाजत देने के किसी भी बिंदु को नहीं देखा, जिससे मुख्य स्थान पर पहुंचा। तो अब मेरे पास केवल 2। htaccess फ़ाइलें हैं। /system में मुख्य और एक जोhtaccess <Directory> सभी

# Block External Access 
deny from all 

तो मैं केवल मुख्य भीतर से है कि चलाने के लिए /system पर चाहता था आयोजित करता है। इसलिए मैंने एक/सिस्टम में हटा दिया और

मेरे मुख्य। Htaccess फ़ाइल को छोड़कर 1 जोड़ा!

लेकिन अब मैं एक

आंतरिक सर्वर त्रुटि

सर्वर में आंतरिक त्रुटि या गलत कॉन्फ़िगरेशन का सामना करना पड़ा और आपके अनुरोध को पूरा करने में असमर्थ था मिलता है।

कृपया सर्वर व्यवस्थापक से संपर्क करें, वेबमास्टर @ लोकलहोस्ट और त्रुटि के समय के बारे में सूचित करें, और कुछ भी हो सकता है जो आप कर चुके हैं जो त्रुटि उत्पन्न कर सकता है।

इस त्रुटि के बारे में अधिक जानकारी सर्वर त्रुटि लॉग में उपलब्ध हो सकती है। पर 10.0.1.5 पोर्ट 80

लक्ष्य

अपाचे/2.2.17 (उबंटू) सर्वर/प्रणाली में किसी भी फाइल को पढ़ने के ब्लॉक करने के लिए है और यह उप निर्देशिका के है, लेकिन एक .htaccess से बाकी सब सब कुछ के देखने के लिए अनुमति देते हैं पूरी परियोजना के लिए फ़ाइल। इस पर कोई विचार है कि मैं इसे कैसे ठीक कर सकता हूं? मैंने कुछ Google खोज की लेकिन वास्तव में कुछ भी नहीं आ सकता था।

उत्तर

74

आप .htaccess में Directory directive का उपयोग नहीं कर सकते। लेकिन यदि आप/प्रणाली निर्देशिका में .htaccess फाइल बना सकते हैं और उस में निम्नलिखित जगह है, तो आप एक ही परिणाम

#place this in /system/.htaccess as you had before 
deny from all 
मिल जाएगा
+3

हाँ। मेरे पास पहले से/सिस्टम में रखा गया था। बस पूरी परियोजना के लिए केवल एक ही करने की कोशिश कर रहा था। मान लीजिए मैं इसे इस तरह से नहीं कर सकता और करूँगा। विंडोज उपयोगकर्ताओं के लिए – Keverw

+0

, सुनिश्चित करें कि आप फ़ाइल नाम को '.htaccess' को सहेजकर बनाते हैं-कुछ पाठ संपादक से फ़ाइल के रूप में क्योंकि विंडोज एक्सप्लोरर आपको फ़ाइल नामों को हटाने की अनुमति नहीं देता है। यह मेरे लिए एक समस्या थी –

1

आप रूट निर्देशिका से उपयोग कर सकते हैं:

RewriteEngine On 
RewriteRule ^(?:system)\b.* /403.html 

या:

RewriteRule ^(?:system)\b.* /403.php # with header('HTTP/1.0 403 Forbidden'); 
9

आप किसी फ़ोल्डर तक पहुंच से इनकार करने के लिए RedirectMatch निर्देश का भी उपयोग कर सकते हैं।

एक फ़ोल्डर में पहुंच रोक के लिए, आप इनको में निम्नलिखित RedirectMatch उपयोग कर सकते हैं:

RedirectMatch 403 ^/folder/?$ 

यह/फ़ोल्डर/जैसे के लिए एक बाहरी पहुँच ना करे होगा: http://example.com/folder/ एक 403 निषिद्ध त्रुटि वापस आ जाएगी।

फ़ोल्डर के अंदर सब कुछ करने के लिए पहुंच को खारिज करने आप इस का उपयोग कर सकते हैं:

RedirectMatch 403 ^/folder/.*$ 

यह करने के लिए संपूर्ण फ़ोल्डर जैसे पहुँच को अवरुद्ध कर देगा: http://example.com/folder/anyURI ग्राहक के लिए एक 403 त्रुटि प्रतिसाद वापस आ जाएगी।