mrcng.pl
mrcng.pl to wypadkowa moich projektów. Projektowanie stron, prowadzenie firmy, branża kreatywna.

Jak ograniczyć dostęp do strony hasłem za pomocą pliku .htaccess?

Przy realizacji jednego z projektów, w którym pracowałem jako podwykonawca, wyszła konieczność „przyblokowania” archiwalnej strony. Klient zażyczył sobie mieć wgląd w starą stronę, po uprzednim wpisaniu hasła. Choć zadanie wydaje się bardzo proste, przecież robiłem to już kilka razy, co prawda dosyć dawno to niestety ciężko było mi zabrać się za ten temat. Tak to już jest z pamięcią, że zadania, schematy, których nie powielamy po prostu gdzieś ulatują. Dlatego też zdecydowałem się prowadzić blogi, żeby to wszystko gromadzić, notować, spisywać. Ale do rzeczy. Opisałem poniżej co trzeba zrobić, żeby zablokować dostęp do konkretnego folderu lub pliku na naszym serwerze. Uwaga! Jeśli zastosujesz poniższą metodę dla głównego folderu to zaszyfrujesz całą stronę.

Aby utworzyć dostęp na hasło potrzebujemy dwóch plików: .htaccess oraz .htpasswd – te kropki przed nazwą pliku są konieczne, bez tego szyfrowanie nie zadziała!

Wklej do .htaccess:

AuthType Basic
AuthName "Dostęp zablokowany. Wprowadź hasło."
AuthUserFile /public_html/pass/.htpasswd
Require valid-user

Dla jasności AuthName to tekst, który pojawi się w okienku, które „wyskoczy” przy próbie otworzenia strony, naomiast AuthUserFile informuje o ścieżce do pliku .htpasswd, w którym znajdą się użytkownicy oraz hasła.

Jeśli chcesz zabezpieczyć hasłem dostęp do 1 pliku to kod do wklejenia w .htaccess wygląda następująco:

AuthType Basic
AuthName "Dostęp zablokowany. Wprowadź hasło."
AuthUserFile /public_html/pass/.htpasswd
<Files nazwa_pliku.php>
Require valid-user
</Files>

Jedna część wykonana, teraz czas na utworzenie pliku .htpasswd oraz umieszczenie w nim zaszyfrowanych haseł dostępu. Bardzo łatwo wykonasz to za pomocą generatora online.  Uzupełniasz pola i generujesz kod, który należy wkleić do pliku .htpasswd

Generowanie zaszyfrowanych haseł do pliku .htpasswd

Jeśli chcesz dać dostęp kilku osobom, Twój plik powinien wyglądać tak:

mrcng:$apr1$in8krme0$pepnqeqKxhAcprB/Trl9z.
admin:$apr1$o1pt5yj6$9wc7IfoYGxxmqp7TzT9DV/
klient:$apr1$fxtod5je$tQv4DmZ3MCM9MBWuviWoN1

Na koniec przygotowane pliki wrzucasz na serwer. Pamiętaj o kropkach przed nazwami plików.

Wczoraj blokowałem dostęp dla domeny: www.archiwum.adresfirmy.pl, a więc plik .htaccess znalazł się w głównym folderze domeny oraz miał postać: 

AuthType Basic
AuthName "Dostęp zablokowany. Wprowadź hasło."
AuthUserFile /pass/.htpasswd
Require valid-user

Ścieżka do pliku .htpasswd nie zaczyna się od /public_html/, ale po prostu pass/.htpasswd, ponieważ plik został umieszczony w folderze www.archiwum.adresfirmy.pl/pass/