2009-09-16 16 views
82

Mam chronione hasłem mojej całej witryny za pomocą .htaccess, ale chciałbym odsłonić jeden z podkatalogów, aby można było przeglądać bez hasła.Jak usunąć .htaccess ochronę hasłem z podkatalogu

Jak mogę wyłączyć ochronę hasłem htaccess dla podkatalogu? W szczególności, jaka jest składnia .htaccess.

Tu jest mój plik .htaccess, który jest umieszczony w katalogu głównym mojego ftp

 
AuthName "Site Administratrion" 
AuthUserFile /dir/.htpasswd 
AuthGroupFile /dev/null 

AuthName secure 
AuthType Basic 
require user username1 
order allow,deny 
allow from all 
+4

To może lepiej pasować do błędu serwera. – beggs

Odpowiedz

129

Musisz utworzyć nowy plik w wymaganym katalogu .htaccess i obejmują dyrektywę Satisfy any w nim tak:

# allows any user to see this directory 
Satisfy Any 

Należy pamiętać, że składnia zmienione w Apache 2.4, to powinien mieć taki sam skutek

Require all granted 
+6

Mogłem tylko uruchomić to za pomocą 'Zezwalaj od wszystkich', a nie' Satisfy Any'. –

+0

@JessTelford dobre wykorzystanie fragmentu kodu. @RageZ +1 za odpowiedź, która sprawdziła się u mnie. Czy możesz edytować odpowiedź, aby była super prosta i opublikować ją za pomocą metody kodu ułamkowego. W przeciwnym razie ktoś będzie musiał pomyśleć: "dziękuję". –

+1

@JessTelford 'Satisfy Any' działa, a jego treść została pominięta jako" Satisify Any ". Może dlatego to nie działa dla ciebie. – BlueBird

1

Trzeba dodać kolejny plik .htaccess do podkatalogu, który nadpisuje uwierzytelnienia. .htaccess spływa kaskadowo w górę, tzn. będzie wyglądać w bieżącym folderze, a następnie podnieść poziom i tak dalej.

+4

Czy znasz składnię? Rozumiem tę koncepcję, ale nie wiem, jak ją wdrożyć. – justinl

+0

Jeśli chcesz usunąć bieżący i nie używać żadnych uprawnień, po prostu zamień go na pusty plik o nazwie .htaccess –

+3

@Garry, ale nie w jaki sposób działa kaskadowanie .htaccess, musisz jawnie zastąpić opcje. –

31

Dodawanie do odpowiedzi RageZ za użyłem tego w dyrektywach serwera:

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

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

Awesome. Dzięki RageZ!

7

Wystarczy utworzyć nową .htaccess w żądanym podkatalogu z niniejszą dyrektywą:

Allow from all

można ograniczyć do IP tylko z:

Allow from x.x.x.x

Patrz: http://httpd.apache.org/docs/current/mod/mod_access_compat.html

+0

Zadziałało, gdy wstawiłem "Wymagaj wszystkich przyznanych" zamiast "Zezwalaj od wszystkich" i "Dostosuj dowolne". Ci dwaj nie działali dla mnie. Jestem na Apache 2.4. – endo64

Powiązane problemy