2012-01-13 21 views
16

Potrzebuję zastosować uwierzytelnianie HTTP w publicznym użytkowaniu strony internetowej, ale nie stosuję go na moim hoście lokalnym. To jest .htaccess, które moim zdaniem powinno zadziałać. Ale to nie działa - nadal pyta mnie o użytkownika/przepustkę.
Co robię źle?Uwierzytelnianie Apache z wyjątkiem localhost

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

jest dostępna oczywiście.

+1

http://stackoverflow.com/questions/3908592/ht-access-ip- ograniczenie i-htpasswd spróbować – Ascherer

+0

Czy próbowałeś 'SetEnvIf REMOTE_ADDR^127 \ 0,0 \ 0,0 \ 0,1 $ develmode = yes' –

Odpowiedz

25

Należy spojrzeć na słowa kluczowe order i satisfy. Przykład roboczy z mojej strony internetowej znajduje się poniżej. Najpierw mówimy, że akceptujemy IP lub UŻYTKOWNIKA. Następnie definiujemy ścieżkę pliku htpasswd i akceptujemy dowolnego poprawnego użytkownika z tego pliku. Na koniec określamy, które adresy IP klientów mogą uzyskać dostęp do naszej sieci bez autoryzacji (odmawiamy wszystkim innym adresom IP, więc muszą one autoryzować przez 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

Wielkie dzięki, że to działa ! – Martin

+0

I niech nie będzie miejsca po ','! Apache podaje błąd 500, jeśli wykonasz polecenie 'deny, allow'. – guaka

14

W Apache 2.4, allow, deny i satisfy nie są już używane, ograniczenie adres IP jest również wykonane z require obecnie:

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

Jeżeli którykolwiek z "wymagania" dyrektyw są spełnione , wniosek jest dozwolony. Jeśli chcesz wymagać obu, zgrupuj je w bloku <RequireAll>.

do ograniczenia dostępu do lokalnej można użyć specjalnej składni Require local zamiast Require ip 127.0.0.1

Więcej:http://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require

Powiązane problemy