htaccess के साथ इंडी डायरेक्टरी लिस्टिंग


103

: मैं एक फ़ोल्डर, उदाहरण के लिए /public_html/Davood/ उदाहरण के लिए, फ़ोल्डर में और भी कई उप फ़ोल्डर: /public_html/Davood/Test1/, /public_html/Davood/Test1/Test/, /public_html/Davood/Test2/, ...

मैं एक htaccess फ़ाइल जोड़ना चाहते हैं /public_html/Davood/निर्देशिका में प्रस्तुत करने के लिए /Davoodऔर उप फ़ोल्डर्स, यह संभव है?


3
मैं नहीं देखता कि Options All -Indexesकुछ उत्तरों में काम क्यों नहीं किया गया!
Fr0zenFyr

1
@ Fr0zenFyr यह वेबसर्वर कॉन्फ़िगरेशन पर निर्भर AllowOverride Allकरता है , अगर , काम करता है
डीजेफारी

जवाबों:


124

विकल्प -Indexes निर्देशिका लिस्टिंग को रोकने के लिए काम करना चाहिए।

यदि आप .htaccess फ़ाइल का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आपके पास अपनी मुख्य Apache config फाइल में कम से कम "allowoverride विकल्प" सेटिंग है ।


1
यह कुछ भी नहीं बदलता है
मिन्हाजुल

69

इसे .htaccessउस निर्देशिका में फ़ाइल में जोड़ने का प्रयास करें ।

Options -Indexes

इस बारे में अधिक जानकारी नहीं है।


हाँ, मैंने सोचा था कि -Indexes ने डायरेक्ट्री लिस्टिंग को अक्षम कर दिया है, इसके बजाय यह फ़ोल्डर से सभी सामग्री को ब्लॉक करता है ... क्या कोई जानता है कि क्यों?
माइकल फीवर

मुझे लगता है कि सर्वर कॉन्फ़िगरेशन में कुछ समस्या है। rewriteमॉड्यूल, और निर्देशिका सेटिंग को सक्षम करने का प्रयास करें AllowOverride All। यदि वह सब पहले से ही है, और आपने जो टिप्पणी की है वह सच है, तो मुझे Options All -Indexesअलग-अलग सर्वरों पर हर प्रोजेक्ट में काम करने के लिए बहुत भाग्यशाली होना चाहिए ।
Fr0zenFyr

35

यदि Options -Indexesब्रायन ड्रियरी ने सुझाव नहीं दिया है, तो आप रिक्त अनुक्रमणिका.php फ़ाइलों को बनाने के लिए एक पुनरावर्ती विधि लिख सकते हैं।

इसे अपने आधार फ़ोल्डर के अंदर रखें जिसे आप संरक्षित करना चाहते हैं, आप इसे जो भी नाम दे सकते हैं (मैं index.php सुझाऊंगा)

<?php

recurse(".");

function recurse($path){
    foreach(scandir($path) as $o){
        if($o != "." && $o != ".."){
            $full = $path . "/" . $o;
            if(is_dir($full)){
                if(!file_exists($full . "/index.php")){
                    file_put_contents($full . "/index.php", "");
                }
                recurse($full);
            }
        }
    }
}

?>

इन रिक्त अनुक्रमणिका.php फ़ाइलों को आसानी से हटाया या अधिलेखित किया जा सकता है, और वे आपकी निर्देशिकाओं को सूची में रखने से बचाएंगी।


8
हालांकि एक खाली फ़ाइल नहीं है कि एक समझौते के बड़ा, एक बेहतर समाधान का उपयोग हो सकता है सांकेतिक लिंक , कि जिस तरह से यह अंतरिक्ष का एक सा बचाता है, और वह केवल अगर वह वर्दी संदेश के कुछ प्रकार प्रदर्शित करने के लिए चुना है 1 फ़ाइल को संशोधित करने की आवश्यकता होगी एक रिक्त पृष्ठ के बजाय।
डेलाबर्ट

18

निषिद्ध त्रुटि दिखाने के लिए अपनी .htaccess फ़ाइल में इन पंक्तियों को शामिल करें:

Options -Indexes 

यदि हम अपनी फ़ाइलों को अनुक्रमित करना चाहते हैं और उन्हें कुछ जानकारी के साथ दिखाना चाहते हैं, तो उपयोग करें:

IndexOptions -FancyIndexing

यदि हम कुछ विशेष एक्सटेंशन नहीं दिखाना चाहते हैं, तो:

IndexIgnore *.zip *.css

1
.httaccessया .htaccess?
नवीन

8

विकल्प -Indexes पूरी तरह से मेरे लिए काम करता है,

यहाँ .htaccessफ़ाइल है:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes <---- This Works for Me :)
    </IfModule>


   ....etc stuff

</IfModule>

इससे पहले : यहां छवि विवरण दर्ज करें

उपरांत :

यहां छवि विवरण दर्ज करें


4

इसके दो तरीके हैं:

  1. .htaccess का उपयोग कर: Options -Indexes

  2. रिक्त index.html बनाएँ


3
Options -Indexes

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

कोशिश करो।


2

सहमत हैं कि

Options -Indexes

यदि विकल्प ओवरराइड करने की अनुमति देने के लिए मुख्य सर्वर कॉन्फ़िगर किया गया है तो काम करना चाहिए, लेकिन यदि नहीं, तो यह सूची से सभी फाइलों को छिपा देगा (इसलिए हर निर्देशिका खाली दिखाई देती है):

IndexIgnore *

2

विकल्प-इंडेक्स एक संरक्षित निर्देशिका के लिए 403 निषिद्ध त्रुटि देता है। Htaccess में निम्न रीडायरेक्ट का उपयोग करके समान व्यवहार प्राप्त किया जा सकता है:

RedirectMatch 403 ^/folder/?$ 

यह example.com/folder/ के लिए निषिद्ध त्रुटि लौटाएगा ।

आप फ़ोल्डर के अनुरोध को मना करने के लिए मॉड-रीराइट का भी उपयोग कर सकते हैं।

RewriteEngine on

RewriteRule ^folder/?$ - [F]

यदि आपका htaccess उस फ़ोल्डर में है जिसे आप मना करने जा रहे हैं, तो ReriteRule के पैटर्न को ^ फोल्डर / $ से ^ $ में बदलें ।

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