उपनिर्देशिका से .htaccess पासवर्ड सुरक्षा कैसे निकालें


97

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

मैं एक उप निर्देशिका के लिए htaccess पासवर्ड सुरक्षा कैसे निष्क्रिय कर सकता हूं? विशेष रूप से .htaccessवाक्य रचना क्या है ।

यहाँ मेरी .htaccessफ़ाइल है जो मेरे ftp के मूल में रखी गई है।

प्रामाणिक "साइट व्यवस्थापन"
ऑथरूसेफाइल / डिर /.टवज्वड
AuthGroupFile / dev / null

प्रमाणित करें
प्रमाण मूल
उपयोगकर्ता नाम 1 की आवश्यकता है
आदेश की अनुमति, इनकार
सभी से अनुमति

4
यह सर्वरफ़ॉल्ट के लिए बेहतर अनुकूल हो सकता है।
6

जवाबों:


154

आपको .htaccessआवश्यक निर्देशिका में एक नई फ़ाइल बनाने की आवश्यकता है और इसमें Satisfy anyनिर्देश को शामिल करें जैसे अपाचे 2.3 तक:

# allows any user to see this directory
Satisfy Any

Apache 2.4 में सिंटैक्स बदल गया, इसका एक ही प्रभाव है:

Require all granted

7
मैं केवल के साथ काम करने के लिए इस मिल सकता है Allow from allनहीं Satisfy Any
जेस टेल्फोर्ड

@ JessTelford कोड स्निपेट का अच्छा उपयोग। @RageZ +1 मेरे लिए काम करने वाले उत्तर के लिए। क्या आप उत्तर को सरल बनाने के लिए एडिट कर सकते हैं और कोड स्निपेट विधि का उपयोग करके इसे पोस्ट कर सकते हैं। अन्यथा किसी को सोचना होगाthanks
जेसी बर्कसिक

2
@JessTelford Satisfy Anyकाम कर रहा है और यह मिस- स्पेल्ड था Satisify Any। हो सकता है कि यही कारण है कि यह आपके लिए काम नहीं किया।
ब्लूबर्ड

1
मुझे एकल फ़ाइल असुरक्षित (सब कुछ संरक्षित) की आवश्यकता है, वही <files> अनुभाग में
निक

यह मेरे लिए काम नहीं करता है - मैं अभी भी यूज़रनेम और pwd के लिए पासवर्ड मोडल प्राप्त कर रहा हूं .. फायरफॉक्स और विंडोज़ 7 का उपयोग कर रहा हूं ... किसी को भी कोई विचार है?
इसकाईएमडोम

36

रेजेज के जवाब में जोड़ते हुए, मैंने इसका उपयोग सर्वर निर्देशों में किया है:

<Directory /var/www/protected/>
     AuthType Basic
     AuthName "Production"
     AuthUserFile /path/to/.htpasswd
     Require valid-user
</Directory>

<Directory /var/www/protected/unprotected>
     Satisfy Any
</Directory>

बहुत बढ़िया। धन्यवाद RageZ!


9

बस .htaccessइस निर्देश के साथ वांछित उपनिर्देशिका में एक नया बनाएँ :

Allow from all

आप केवल अपने IP तक ही सीमित रह सकते हैं:

Allow from x.x.x.x

देखें: http://httpd.apache.org/docs/current/mod/mod_access_compat.html


जब मैंने "सभी से अनुमति दें" और "संतुष्ट कोई भी" के बजाय "सभी की आवश्यकता है" डाला तो यह काम कर गया। उन दोनों ने मेरे लिए काम नहीं किया। मैं अपाचे 2.4 पर हूं।
endo64

1

आपको प्रमाणीकरण को ओवरराइड करने वाली उपनिर्देशिका में एक और .htaccess फ़ाइल जोड़ने की आवश्यकता है। .htaccess ऊपर की ओर कैस्केड करता है, अर्थात यह वर्तमान फ़ोल्डर में दिखेगा, फिर एक स्तर और ऊपर जाएगा।


4
क्या आपको सिंटेक्स पता है? मैं अवधारणा को समझता हूं लेकिन यह नहीं जानता कि इसे कैसे लागू किया जाए।
जस्टिन

यदि आप करंट को हटाना चाहते हैं और बिना किसी परमिशन के उपयोग करना चाहते हैं, तो बस इसे एक खाली फाइल के साथ बदलें जिसका नाम है .htaccess
Ga12

3
@ गैरी यह नहीं है कि .htaccess कैस्केडिंग कैसे काम करती है, आपको विकल्पों को स्पष्ट रूप से ओवरराइड करना होगा।
विलियम डेनिस

1

यहां एक साइट पर मुख्य .htaccess फ़ाइल से मूल प्रमाणीकरण के माध्यम से उपनिर्देशिका "फू" की अनुमति देने का एक तरीका है:

AuthType Basic
AuthName "Password Required"
AuthUserFile /dir/.htpasswd
Require expr %{REQUEST_URI} =~ m#^/foo/#
Require valid-user

नोट: यह Apache 2.4 में काम करता है। मैंने पहले के संस्करणों की पुष्टि नहीं की है।


0

अगर आप htaccess ऑथेंटिकेशन से किसी खास डायरेक्टोटी को रोकना चाहते हैं तो आप अपनी htaccess फाइल में ऊपर दिए कोड का इस्तेमाल कर सकते हैं।

AuthType Basic AuthName "Enter Pass" AuthUserFile /home/public_html/.htpasswd /*PATH TO YOUR .htpasswd FILE*/ Require valid-user SetEnvIf Request_URI "(/DIRECTORY_NAME/)$" allow Order allow,deny Allow from env=allow

इसके अलावा, यदि आप कई निर्देशिकाओं को रोकना चाहते हैं तो जोड़ें

SetEnvIf Request_URI "(/DIRECTORY_NAME/)$" allow

कई निर्देशिकाओं के रूप में कई बार, आप htaccess की रोकथाम से दूर करना चाहते हैं।

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