2012-01-13 15 views
16

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

SetEnvIf Remote_Addr ^127\.0\.0\.1$ develmode 
<IfDefine !develmode> 
    AuthType Basic 
    AuthName "ADMIN" 
    AuthUserFile /path/to/.htpasswd 
    Require valid-user 
</IfDefine> 

mod_setenvif निश्चित रूप से सक्षम है।

+1

http://stackoverflow.com/questions/3908592/ht-access-ip- प्रतिबंध और htpasswd कोशिश है कि – Ascherer

+0

आप की कोशिश की है 'SetEnvIf REMOTE_ADDR^127 \ .0 \ .0 \ .1 $ develmode = yes' –

उत्तर

25

आपको order और satisfy कीवर्ड देखने की आवश्यकता है। मेरी वेबसाइट से कार्य उदाहरण नीचे है। सबसे पहले हम कहते हैं कि हम या तो आईपी या यूजर स्वीकार करते हैं। फिर हम htpasswd फ़ाइल पथ को परिभाषित करते हैं और हम उस फ़ाइल से किसी वैध उपयोगकर्ता को स्वीकार करते हैं। अंत में हम परिभाषित करते हैं कि कौन से ग्राहक आईपी पते हमारे वेब तक पहुंच सकते हैं (हम सभी अन्य आईपी से इनकार करते हैं, ताकि उन्हें htpasswd के माध्यम से ऑथ करना चाहिए)।

 
# permit by USER || IP 
Satisfy any 
# USER 
AuthUserFile /var/www/munin/.htpasswd 
AuthGroupFile /dev/null 
AuthName "Password Protected Area" 
AuthType Basic 
require valid-user 
# IP 
order deny,allow 
deny from all 
allow from 11.22.33. 
+0

बहुत बहुत शुक्रिया, यह काम कर रहा है ! – Martin

+0

और ',' के बाद कोई जगह नहीं होने दें! अगर आप 'इनकार करते हैं, अनुमति दें' तो अपाचे 500 त्रुटि देता है। – guaka

14

में अपाचे 2.4, allow, deny और satisfy अब और उपयोग नहीं किया जाता, आईपी पते प्रतिबंध भी अब require साथ किया जाता है:

AuthUserFile /path/to/.htpasswd 
AuthName "Restricted Access" 
AuthType Basic 
Require ip 127.0.0.1 
Require valid-user 

हैं "आवश्यक" निर्देशों के किसी भी पूरा किया जाता अनुरोध की अनुमति है। यदि आप दोनों की आवश्यकता है, तो उन्हें <RequireAll> ब्लॉक में समूहित करें।

स्थानीय उपयोग के लिए प्रतिबंध के लिए आप विशेष सिंटेक्स Require local बजाय Require ip 127.0.0.1

का उपयोग कर सकते हैं और अधिक पढ़ें:http://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require

संबंधित मुद्दे