.Htaccess में एक विशिष्ट फ़ोल्डर तक पहुँच से इनकार करें


130

मैं उपयोगकर्ताओं site/includesको URL में हेरफेर करके फ़ोल्डर तक पहुंचने से इनकार करने का प्रयास कर रहा हूं ।

मुझे नहीं पता कि क्या मुझे सब कुछ से इनकार करना है और मैन्युअल रूप से व्यक्तिगत अपवाद बनाने की अनुमति देना है, अगर मैं सिर्फ इस एक फ़ोल्डर से इनकार कर सकता हूं, या यदि कोई फिर से लिखना कार्य किया जा सकता है।

विशिष्ट उदाहरण: मैं localhost/site/includesURL में लिखकर निर्देशिका फ़ाइलों को देखना नहीं चाहता ।


1
लिस्टिंग निर्देशिकाओं को Options -Indexes

जवाबों:


205

site/includes/.htaccessफ़ाइल बनाएं और इस पंक्ति को जोड़ें:

Deny from all

5
अरे !! anubhava मैंने इसका उपयोग / api फ़ोल्डर के अंदर मेरी एपीआई फ़ाइलों तक सीधी पहुंच को अक्षम करने के लिए किया है, लेकिन अब सभी webservice कॉल को 403 निषिद्ध स्थिति भेज रहा है .. मैं बस एक्सेस को ब्लॉक करना चाहता हूं जब कोई इसे ब्राउज़र से एक्सेस करता है।
रावीसन

9
एक वेबसर्वर के लिए ब्राउज़र और गैर-ब्राउज़र के बीच अनुरोधों के बीच कोई वास्तविक अंतर नहीं है।
शुभ

मैं नगनेक्स का उपयोग करता हूं और मैं उपयोग नहीं कर सकता .htaccess। तो, मैं इसके बिना कैसे कर सकता हूं .htaccess? धन्यवाद
शफीज़ादेह

यदि मैं सभी से इनकार करता हूं तो मैं फ़ोल्डर / उप फ़ोल्डर की फ़ाइलों तक कैसे पहुंच सकता हूं? फ़ोल्डर / उप फ़ोल्डर में फाइलें 404 त्रुटि देती हैं।
विकास खूंटेटा

2
Deny from all404 लेकिन 403 नहीं देंगे। आप अभी भी PHP / पर्ल आदि का उपयोग करके फ़ाइल / फोल्डर का उपयोग कर सकते हैं, लेकिन वेब अनुरोध का उपयोग नहीं कर रहे हैं। यदि आप अपनी क्वेरी का उत्तर नहीं देते हैं तो आप एक नया प्रश्न खोल सकते हैं।
शुभ

52

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

Htaccess में निम्न पंक्ति जोड़ें

RedirectMatch 403 ^/folder/?$

यह 403 forbiddenफ़ोल्डर के लिए एक त्रुटि लौटाएगा अर्थात्: http://example.com/folder/लेकिन यह उस फ़ोल्डर के अंदर फ़ाइलों और फ़ोल्डरों तक पहुंच को अवरुद्ध करता है, यदि आप फ़ोल्डर के अंदर सब कुछ ब्लॉक करना चाहते हैं तो बस रेगेक्स पैटर्न को बदल दें ^/folder/.*$

एक अन्य विकल्प यह है कि mod-rewrite यदि url-rewrting-moduleआप सक्षम हैं तो आप निम्नलिखित में से कुछ का उपयोग कर सकते हैं root/.htaccss:

RewriteEngine on

RewriteRule ^folder/?$ - [F,L]

यह आंतरिक रूप folderसे forbiddenत्रुटि पृष्ठ के लिए एक अनुरोध मैप करेगा ।


1
अपाचे 2.22 के साथ सबसे अच्छा समाधान पहला है: पुनर्निर्देशन .....
जॉन

6
.htaccessप्रत्येक निर्देशिका में कई फाइलें बनाने के बजाय, इस उत्तर को पसंद करते हैं, जिसके लिए मुझे पहुंच से इनकार करना होगा।
दानामद

40

एक .htaccessफ़ाइल में आपको उपयोग करने की आवश्यकता है

Deny from  all

site/includes/.htaccessइसे includesनिर्देशिका के लिए विशिष्ट बनाने के लिए रखें

यदि आप केवल निर्देशिका फ़ाइलों की सूची को अस्वीकार करना चाहते हैं, जिनका आप उपयोग कर सकते हैं

Options -Indexes 

2
क्या यह पुनरावर्ती है?
अब्दिल्लाह

@ अब्दिल्लाह हां यह है
ओलिवर एम

18

हम सभी फ़ाइल प्रकारों के लिए पहुँच को अस्वीकार करते हुए, निर्देशिका को बहुत सुरक्षित होने के लिए सेट करेंगे। नीचे वह कोड है जिसे आप .htaccess फ़ाइल में डालना चाहते हैं।

Order Allow,Deny 
Deny from all 

चूँकि हमने अब सुरक्षा सेट कर दी है, हम अब अपनी इच्छित फ़ाइल प्रकारों तक पहुँच की अनुमति देना चाहते हैं। ऐसा करने के लिए, आपके द्वारा अभी डाले गए सुरक्षा कोड के तहत .htaccess फ़ाइल के नीचे दिए गए कोड को जोड़ें।

<FilesMatch "\.(jpg|gif|png|php)$">
Order Deny,Allow
   Allow from all
</FilesMatch>

आपकी अंतिम .htaccessफ़ाइल की तरह दिखेगा

Order Allow,Deny 
Deny from all 

<FilesMatch "\.(jpg|gif|png|php)$">
Order Deny,Allow
   Allow from all
</FilesMatch>

स्रोत से एक संरक्षित निर्देशिका में विशिष्ट फ़ाइल प्रकारों तक पहुंच की अनुमति दें


इस जवाब ने मुझे बहुत सिरदर्द से बचाया। एक जादू की तरह काम करता है।
मैं बहुत कोशिश करता हूं, लेकिन मैं

9

आप फ़ोल्डर के लिए एक .htaccess फ़ाइल बना सकते हैं, जिसके साथ पहुँच से वंचित होना चाहिए

Deny from  all

या आप कस्टम 404 पृष्ठ पर पुनर्निर्देशित कर सकते हैं

Redirect /includes/ 404.html

6

जिस फोल्डर को आप प्रतिबंधित करना चाहते हैं, उसमें बस .htaccess लगाएं

## no access to this folder

# Apache 2.4
<IfModule mod_authz_core.c>
    Require all denied
</IfModule>

# Apache 2.2
<IfModule !mod_authz_core.c>
    Order Allow,Deny
    Deny from all
</IfModule>

स्रोत: मंटिसबीटी स्रोत


4

आप इसे IndexIgnore * अपनी रूट .htaccess फ़ाइल में उप-डायर सहित अपनी सभी वेबसाइट निर्देशिकाओं की फ़ाइल सूची को अक्षम करने के लिए भी रख सकते हैं


6
यह फ़ाइल प्रविष्टि को अक्षम नहीं करता है, लेकिन अनुक्रमणिका का निर्माण करते समय ऑटोइन्डेक्सर को सभी फ़ाइलों को अनदेखा करने के लिए कहता है। फ़ाइल लिस्टिंग को अक्षम करने के लिए, आप उपयोग करेंगे Options -Indexes
व्लादिमीर कोर्ना

3

Index.php, index.html, index.htm बनाना सुरक्षित नहीं है। बने, किसी को भी फ़ाइलों के नाम का अनुमान लगाकर निर्दिष्ट निर्देशिका में आपकी फ़ाइलों तक पहुँच प्राप्त हो सकती है। जैसे: http://yoursite.com/includes/file.dat तो, अनुशंसित विधि सभी आगंतुकों को अस्वीकार करने के लिए एक .htaccess फ़ाइल बना रही है;)। मज़े करो !!


2

आप इसे गतिशील तरीके से कर सकते हैं:

mkdir($dirname);
@touch($dirname . "/.htaccess");
  $f = fopen($dirname . "/.htaccess", "w");
  fwrite($f, "deny from all");
fclose($f);

0

कुछ कारणों के लिए जो मुझे समझ में नहीं आया, फ़ोल्डर बनाना / .htaccess और सभी से Deny जोड़ना मेरे लिए काम करने में विफल रहा। मुझे पता नहीं क्यों, यह सरल लग रहा था, लेकिन काम नहीं किया, RedirectMatch 403 ^ / folder /.*$ को जोड़कर रूट htaccess के बजाय काम किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.