मैं निर्देशिका ब्राउज़िंग कैसे अक्षम करूँ?


245

मैं / galerias फ़ोल्डर और सभी उपनिर्देशिकाओं की निर्देशिका ब्राउज़िंग को अक्षम करना चाहता हूं

सूचकांक / गैलेरियास / 409

* Parent Directory
* i1269372986681.jpg
* i1269372986682.jpg
* i1269372988680.jpg

2
उन्होंने फिल्म "द सोशल नेटवर्क" youtu.be/BPazh2kDdvA?t=1m49s
डैनियल एल। वनडेनबॉश

जवाबों:


420

निम्नलिखित पंक्ति वाली एक .htaccess फ़ाइल बनाएँ:

Options -Indexes

वह एक विकल्प है। एक अन्य विकल्प आपकी अपाचे कॉन्फ़िगरेशन फ़ाइल को संपादित कर रहा है।

ऐसा करने के लिए, आपको पहले इसे कमांड से खोलने की आवश्यकता है:

vim /etc/httpd/conf/httpd.conf

फिर लाइन ढूंढें: विकल्प अनुक्रमणिका FollowSymLinks

उस पंक्ति को इसमें बदलें: विकल्प FollowSymLinks

फ़ाइल को अंतिम रूप से सहेजें और बाहर निकलें, और इस कमांड के साथ अपाचे सर्वर को पुनरारंभ करें:

sudo service httpd restart

(आपके पास यहां स्क्रीनशॉट के साथ एक गाइड है ।)


14
यह एक वास्तविक .conf फ़ाइल में <निर्देशिका> या <स्थान> में भी काम करता है
chrismarx

1
@chrismarx कौनसी .conf फ़ाइल मैं इसमें डालूँगा? .htaccess मेरे सर्वर पर सक्षम नहीं लगता है, और मैंने पढ़ा है कि इसे वैसे भी उपयोग नहीं करना बेहतर है। मैं हालांकि सभी vps के रूप में सभी सर्वर फ़ाइलों के लिए उपयोग किया है।
चार्ल्स जॉन थॉम्पसन III

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

10
ध्यान दें कि .htaccessबंद हो सकता है। कृपया AllowOverrideनिर्देश देखें। यदि यह सेट है None, तो .htaccessबंद कर दिया गया है। आप इसे सेटिंग करके चालू कर सकते हैं AllowOverride All। अधिक सटीक होने के लिए, Allसभी अपाचे निर्देशों का मतलब है।
जूलियन

2
अगर आपके पास http.conf का नियंत्रण है, तो इसे बेहतर तरीके से करें। Htaccess के साथ एक प्रदर्शन हिट है
Itay Moav -Malimovka

299

इसे करने का सबसे अच्छा तरीका है इसे वेबसर्वर apache2 के साथ अक्षम करना। मेरे Ubuntu 14.X में - से खुला /etc/apache2/apache2.confपरिवर्तन

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

सेवा

<Directory /var/www/>
        Options FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

फिर अपाचे को फिर से शुरू करें:

sudo service apache2 reload

यह अपाचे 2 पर काम करने वाले सभी फोल्डर से डायरेक्टरी लिस्टिंग को डिसेबल कर देगा।


11
'sudo service apache2 reload ' पर्याप्त होगी!
डॉक्टरलाई doctor

2
@ जय मैंने भी "विकल्प-सूचकांक" की कोशिश की, लेकिन अपाचे उसके बाद शुरू नहीं होगा। मैं सर्वर संस्करण चला रहा हूं: Apache / 2.4.18 (Ubuntu)। हालांकि, "ऑप्शंस फॉलोसमलाइंक" का उपयोग करते हुए डंग के जवाब के अनुसार काम किया। मैं बस उत्सुक हूँ कि अपाचे और ओएस का कौन सा संस्करण आप चला रहे हैं? शायद यह एक संस्करण बात है?
19

@Jay @MikeyE वही; Apache फिर से लोड नहीं करेगा-Indexes
क्रिम्बो

1
@Jay @MikeyE अपाचे को फिर से लोड / रीस्टार्ट करने पर लगता हैFollowSymLinks
क्रिमबो

2
Httpd.conf में apachectl configtestजोड़ने के बाद रनिंग Options -Indexes FollowSymLinksनिम्नलिखित त्रुटि से बाहर निकलती है: "या तो सभी विकल्पों को + या - या किसी भी विकल्प के साथ शुरू होना चाहिए।" इसलिए, क्या काम करेगाOptions -Indexes +FollowSymLinks
जॉन टी।

45

एक निर्दिष्ट दो विधियों के अलावा (संपादित करें /etc/apache2/apache2.conf या विकल्प जोड़ें -Indexes इन .htaccess फ़ाइल), यहां एक और है।

a2dismod autoindex

बाद में Apache2 सर्वर को पुनरारंभ करें

sudo service apache2 restart

4
आप गैर-अवरुद्ध कमांड निष्पादन के a2dismod -f autoindexलिए उपयोग कर सकते हैं ।
Константин Ван

अच्छा परमाणु विकल्प! यह Aliasफोल्डर और अपाचे द्वारा दिए गए किसी भी अन्य पथ के लिए काम करता है ।
कोनटेक्स्टाइफ़

क्या मुझे ऐसा करने वाले किसी दुष्प्रभाव के बारे में पता होना चाहिए?
नरेश कुमार

28

इसके साथ एक .htaccessफ़ाइल संपादित करें / बनाएँ /galerias:

Options -Indexes

निर्देशिका ब्राउज़िंग mod_autoindex मॉड्यूल द्वारा प्रदान की जाती है ।


मूल निर्देशिका पर काम नहीं करता है, Apache2.4.33 में, मुझे @Sarvar Nishonboyev के उत्तर का उपयोग करना था
Felipe Valdes

1
@FelipeValdes कृपया प्रश्न और मेरे उत्तर दोनों को ध्यान से पढ़ें। हम रूट निर्देशिका के बारे में बात नहीं कर रहे हैं, लेकिन एक उपनिर्देशिका और इसे एक .htaccessफ़ाइल में करने योग्य होने का अनुरोध किया गया है (जो कि सबसे अधिक प्रदर्शन करने का तरीका नहीं है लेकिन यह अक्सर साझा होस्टिंग खातों या व्यस्त sysadmins के साथ एकमात्र विकल्प है)।
अल्वारो गोंजालेज

23

आप index.htmlप्रत्येक निर्देशिका में एक खाली फ़ाइल रख सकते हैं जिसे आप सूचीबद्ध नहीं करना चाहते हैं। इसके कई फायदे हैं:

  • यह (आमतौर पर) सर्वर पर शून्य कॉन्फ़िगरेशन की आवश्यकता होती है।
  • यह काम करता रहेगा, भले ही सर्वर व्यवस्थापक सर्वर कॉन्फ़िगरेशन में "AllowOverride कोई नहीं" का उपयोग करने का निर्णय लेता है। (यदि आप .htaccessफ़ाइलों का उपयोग करते हैं, तो इससे आपके उपयोगकर्ताओं के लिए "त्रुटि 500 ​​- आंतरिक सर्वर त्रुटि" संदेश बहुत हो सकते हैं!)।
  • यह आपको अपाचे कॉन्फ़िगरेशन के साथ गड़बड़ करने के बिना फिर से अपनी फ़ाइलों को एक सर्वर से दूसरे सर्वर पर स्थानांतरित करने की अनुमति देता है।

सैद्धांतिक रूप से, ऑटोइंडेक्सिंग को एक अलग फ़ाइल द्वारा ट्रिगर किया जा सकता है (यह DirectoryIndexविकल्प द्वारा नियंत्रित किया जाता है), लेकिन मुझे अभी तक वास्तविक दुनिया में इसका सामना करना है।


सचेत! यह केवल index.htmlमुख्य रूप से परिभाषित DirectoryIndex Directive के रूप में काम कर सकता है ।
nyedidikeke

18

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

Options Includes Indexes FollowSymLinks MultiViews

फिर वर्ड इंडेक्स निकालें और फाइल को सेव करें। फिर से शुरू करें। बस


1
उत्तम। यह मशीन चौड़ा अक्षम करें। यह डिफ़ॉल्ट रूप से क्यों सक्षम किया जाएगा, मेरे पास कोई विचार नहीं है ...
eduncan911

1
इसने मेरे लिए उबंटू (apache2.conf) पर काम किया लेकिन .htaccess विकल्प -Indexes नहीं किया।
डेनियल लिटिल

इसने मेरे लिए उबंटू (/etc/apache2/apache2.conf) पर काम किया। लेकिन .htaccess विकल्प -Indexes नहीं किया।
user2875289

5

यदि आप इसे हल करने के लिए अपनी httpd.conf फ़ाइल को संशोधित करना चुनते हैं और आपके पास कई विकल्प निर्देश हैं, तो आपको प्रत्येक निर्देश से पहले एक - या a + जोड़ना होगा। उदाहरण:

विकल्प -Indexes + FollowSymLinks


3

यह कोई जवाब नहीं है, बस मेरा अनुभव:

मेरे Ubuntu 12.04 apache2 पर, Indexesया तो apache2.conf या httpd.conf में नहीं मिला , सौभाग्य से मुझे यह मिला sites-available/default। इसे हटाने के बाद, अब यह निर्देशिका लिस्टिंग नहीं देखता है। इसके लिए करना पड़ सकता है sites-available/default-ssl


2

अपनी .htaccess फ़ाइल खोलें और निम्नलिखित कोड दर्ज करें

Options -Indexes

सुनिश्चित करें कि आपने "विकल्प -Indexes" शब्दों को दर्ज करने के बाद ENTER (या RETURN कुंजी का उपयोग करें यदि आप एक मैक का उपयोग करते हैं) को हिट करें ताकि फ़ाइल एक रिक्त रेखा के साथ समाप्त हो जाए।


2

इसे अपने .htaccess फ़ाइल में जोड़ें:

Options -Indexes

यदि यह किसी भी कारण से काम नहीं कर रहा है, तो अपने .htaccess फ़ाइल में इसे आज़माएँ:

IndexIgnore *

1

@ GauravKachhadiya का जवाब पूरा करने के लिए:

IndexIgnore *.jpg

इसका मतलब है "केवल .jpg एक्सटेंशन फ़ाइलों को अनुक्रमित करने से छिपाएं ।

IndexIgnore निर्देश निर्देशिका और फ़ाइलों के विरुद्ध मिलान करने के लिए वाइल्डकार्ड अभिव्यक्ति का उपयोग करता है।

  • एक स्टार चरित्र, यह एक स्ट्रिंग में किसी भी प्रकार से मेल खाता है, उदाहरण के लिए: foo या foo.extension, निम्नलिखित उदाहरण में, हम निर्देशिका लिस्टिंग को बंद करने जा रहे हैं, कोई फाइल या डायर सूचकांक में दिखाई नहीं देंगे:

    IndexIgnore *

या यदि आप डायरेक्टरी लिस्टिंग में स्पेसिफिक फाइल्स छिपाना चाहते हैं, तो हम उपयोग कर सकते हैं

IndexIgnore *.php

* .php => किसी स्ट्रिंग से मेल खाता है और .php के साथ समाप्त होता है

उपरोक्त उदाहरण .php के साथ समाप्त होने वाली सभी फ़ाइलों को छुपाता है


0

इसमें ये आज़माएँ .htaccess:

IndexIgnore *.jpg

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