Plik .htaccess file lub rozproszony plik konfiguracyjny to potężny plik służący do kontrolowania i zarządzania konfiguracją strony internetowej. Wszystkie zmiany konfiguracji są wprowadzane dla poszczególnych katalogów, aby upewnić się, że główne pliki konfiguracyjne serwera pozostają nienaruszone.
Kiedy preferowane jest użycie pliku .htaccess
Niezależnie od tego, czy chcesz ładować strony błędów, czy wdrożyć zabezpieczenia hasłem, plik .htaccess ma wiele zastosowań. Do najczęstszych przykładów należą:
-
Dodawanie przekierowań dla określonego adresu URL lub listy adresów URL.
-
Włączenie ochrony hasłem dla określonych katalogów na serwerze.
-
Ładowanie spersonalizowanych stron błędów.
-
Wymuszanie na stronie korzystania z HTTPS zamiast HTTP.
-
Blokowanie określonych adresów IP lub domen.
W tym poradniku przeprowadzimy Cię przez kroki umożliwiające włączenie, utworzenie i korzystanie z pliku .htaccess.
Wymagania wstępne
Aby skorzystać z tego samouczka, musisz posiadać następujące elementy:
-
Najnowsza wersja systemu Ubuntu jest zainstalowana na Twoim komputerze.
-
Serwer WWW Apache musi być zainstalowany na Twoim serwerze Ubuntu.
-
Skonfigurowany wirtualny host Apache dla Twojej domeny.
-
Użytkownicy systemu muszą posiadać uprawnienia sudo.
-
Zabezpieczony wirtualny host za pomocą SSL.
-
Postępuj zgodnie z instrukcją Zabezpieczanie Apache za pomocą Let’s Encrypt w systemie Ubuntu 18.04 jeśli konfigurujesz i zabezpieczasz Apache przy użyciu własnej domeny.
-
Alternatywnie możesz Utworzyć samopodpisany certyfikat SSL dla Apache w Ubuntu 20.04 jeśli zamierzasz używać Apache do celów testowych.
-
|
Uwaga: Istnieje wielu dostawców domen, u których można kupić własne domeny online. Namecheap, Freenom, oraz Bluehost, to tylko niektóre z nich, znane ze swoich wyjątkowych usług. |
Po zakończeniu wstępnej konfiguracji zaloguj się na swój serwer jako użytkownik sudo i zaczynajmy.
Krok 1 — Włączenie pliku .htaccess
Domyślnie plik .htaccess jest wyłączony. Najpierw musimy zmienić konfigurację Apache i włączyć plik .htaccess.
Otwórz plik wirtualnego hosta apache2/sites-available/your_domain.conf za pomocą nano lub dowolnego innego edytora tekstu:
|
1 |
$ sudo nano /etc/apache2/sites-available/your_domain.conf |
Zakładając, że masz już gotową konfigurację omówioną w poradniku dotyczącym serwera WWW Apache guide, znajdziesz następujące szczegóły konfiguracji:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Następnie dodaj następującą zawartość Directory wewnątrz bloku VirtualHost:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/your_domain> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow, deny allow from all </Directory> </VirtualHost> |
W powyższym bloku kodu linia AllowOverride All w sekcji Directory jest najważniejsza ze wszystkich. Ta sekcja umożliwia korzystanie z plików .htaccess .
Następnie zapisz swoją pracę i zamknij plik. Jeśli używasz edytora tekstu nano, użyj skrótu CTRL + X, Y, i ENTER, aby zamknąć plik.
Sprawdź konfigurację przed ponownym uruchomieniem serwera WWW:
|
1 |
$ sudo apache2ctl configtest |
Zobaczysz Syntax OK jako wynik, jeśli wszystko jest w porządku. Teraz uruchom ponownie serwer, aby dodać politykę haseł:
|
1 |
$ sudo systemctl restart apache2 |
Gdy ustawienia pliku .htaccess zostaną włączone, nadszedł czas na utworzenie nowego pliku.
Krok 2 — Utworzenie pliku .htaccess
Utworzenie pliku .htaccess jest proste. Musisz przejść do głównego katalogu serwera (tzw. web root), czyli źródła, aby zlokalizować plik .htaccess, aby upewnić się, że zmiany konfiguracyjne zostaną poprawnie wykonane.
|
Note: Zachowaj ostrożność podczas lokalizowania pliku .htaccess . Subtelny błąd w konfiguracji może niekorzystnie wpłynąć na ten katalog i katalogi podrzędne. Na przykład, jeśli planujesz hostować wiele stron internetowych na tym samym serwerze Apache, umieść swój plik .htaccess w głównym katalogu powiązanym z tą stroną. |
Jeśli spełniłeś omówione powyżej wymagania wstępne, główny katalog serwera ( root ) znajdziesz pod ścieżką /var/www/my_domain/.htaccess. Następnie utwórz plik .htaccess dla swojej witryny za pomocą:
|
1 |
$ sudo nano /var/www/your_domain/.htaccess |
Gdy nasz plik .htaccess jest gotowy, przyjrzyjmy się kilku przypadkom jego użycia.
Step 3 — Common Uses of .htaccess File

Używanie pliku .htaccess na swojej stronie niesie za sobą szereg korzyści. Omówmy szczegółowo każdą z nich:
-
Przekierowywanie adresów URL
Przekierowanie URL, zwane również przekazywaniem adresów URL, to funkcja serwera WWW służąca do przekierowywania odwiedzających domenę na inny adres URL. Możesz użyć pliku .htaccess do potrzeb związanych z przekierowywaniem adresów URL. Dodaj następujący kod do swojego pliku .htaccess, aby powiązać źródłowy adres URL z docelowym adresem URL:
|
1 2 3 4 |
RewriteEngine on RewriteCond %{HTTP_HOST} ^testdomain.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.testdomain.com [NC] RewriteRule ^(.*)$ http://demodomain.com/$1 [L,R=301,NC] |
-
Tworzenie niestandardowych stron błędów
Użytecznym aspektem pliku .htaccess jest możliwość tworzenia niestandardowych stron błędów. Zazwyczaj, gdy użytkownik trafi na stronę, która nie istnieje w witrynie, na ekranie pojawia się komunikat o błędzie. Niektóre z typowych kodów błędów HTTP to:
-
400 Bad Request
-
401 Unauthorized
-
403 Forbidden
-
404 Not Found
-
500 Internal Server Error
-
502 Bad Gateway
-
503 Service Unavailable
W przeciwieństwie do domyślnego błędu serwera „Page Not Found”, użyj pliku .htaccess, aby zapewnić użytkownikom lepsze, bardziej przyjazne wrażenia podczas przeglądania.
-
Konfiguracja uwierzytelniania zabezpieczeń
Za pomocą pliku .htaccess możesz również skonfigurować uwierzytelnianie zabezpieczeń. W tym celu musisz utworzyć plik .htpasswd do uwierzytelniania użytkowników.
Użyj polecenia htpasswd , aby utworzyć plik haseł ze względów bezpieczeństwa. Apache użyje tego pliku haseł do uwierzytelniania zweryfikowanych użytkowników. Przejdź do katalogu /etc/apache2 i utwórz poufny plik o nazwie .htpasswd.
Aby utworzyć wymagany plik .htpasswd, użyj -c opcji przy pierwszym użyciu tego narzędzia zabezpieczającego hasłem. Następnie określ nazwę użytkownika na końcu polecenia, aby dodać nowy wpis w pliku. Po tym zastąp nazwę użytkownika nick (użytą w tym samouczku) swoją własną nazwą użytkownika:
|
1 |
$ sudo htpasswd -c /etc/apache2/.htpasswd nick |
Następnie zostaniesz poproszony o podanie i zweryfikowanie hasła użytkownika.
Czytaj dalej ten samouczek, aby dowiedzieć się więcej o konfigurowaniu uwierzytelniania hasłem w serwerze Apache na systemie Ubuntu 20.04.
-
Dodawanie typów MIME
Klasyfikacja plików używanych w Internecie jest niezwykle prosta dzięki zastosowaniu Multi-Purpose Internet Mail Extensions (MIME). W kilku scenariuszach, gdy witryna nie dostarcza określonego pliku, dodanie rozszerzeń rozwiązuje problem. Użyj poniższego kodu, aby dodać typy Multipurpose Internet Mail Extensions (MIME) do serwera Apache w pliku .htaccess :
|
1 |
AddType audio/mp4a-latm .m4a |
|
Uwaga: W naszym przewodniku użyliśmy typu MIME dla pliku audio. Zastąp aplikację i rozszerzenie pliku docelowym typem MIME. Dodatkowo upewnij się, że konfiguracja wirtualnego hosta oraz katalog lokalizacji pliku .htaccess mogą korzystać z dyrektywy AddType . W przeciwnym razie otrzymasz błąd 500 Internal Server Error. |
-
Server Side Includes(SSI)
SSI (Server Side Includes) to dyrektywy, które wprowadzają dynamiczną zawartość do strony HTML. Służą do aktualizowania dużej liczby stron określonymi danymi bez konieczności jawnej aktualizacji każdej strony osobno.
W plikach HTML funkcja Server Side Includes (SSI) jest domyślnie wyłączona. Dodaj następujący kod do swojego pliku .htaccess , aby włączyć SSI:
|
1 2 |
AddType text/html .shtml AddHandler server-parsed .shtml</pre> |
Powyższe linie najpierw walidują pliki .shtml. Potwierdzenie jest następnie wysyłane do pliku .htaccess, jednocześnie pozwalając serwerowi na parsowanie wszystkich plików .shtml.
Alternatywnie możesz użyć XBitHack, aby sparsować wiele zawartości .html zamiast zmieniać nazwy rozszerzeń .shtml jedno po drugim. Dodaj następującą linię do pliku .htaccess, aby użyć XbitHAck i poprosić serwer Apache o sprawdzenie wszystkich plików .html:
|
1 |
XBitHack on |
Następnie musisz zmienić uprawnienia, aby strona kwalifikowała się do użycia XBitHack. Użyj następującego polecenia chmod, aby to zrobić:
|
1 |
$ chmod +x pagename.html |
-
Zarządzanie adresami IP
Czasami, ze względów bezpieczeństwa, możesz chcieć zablokować adres IP lub zakres adresów IP odwiedzających Twoją witrynę. Wstaw następujące linie kodu do swojego pliku .htaccess, aby ograniczyć docelowy adres IP:
|
1 |
Order Deny, Allow Deny from A.A.A.A (gdzie A.A.A.A to a konkretny IPv4 adres) |
Użyj osobnej linii, aby zablokować więcej niż jeden adres IP:
|
1 |
Order Deny Allow Deny from A.A.A.A (gdzie A.A.A.A to a konkretny IPv4 adres) Deny from B.B.B.B (gdzie B.B.B.B to a konkretny IPv4 adres) |
Ponadto możesz zablokować domenom dostęp do swojej witryny. Ogranicz konkretną domenę, dodając następującą linię kodu do pliku .htaccess :
Order Deny, Allow Deny from www.blockdomain.com (gdzie www.blockdomain.com to konkretna domena)
Zagrożenia związane z używaniem .htaccess
Dodanie pliku
.htaccess jest bez wątpienia mądrym posunięciem, aby skonfigurować witrynę i uczynić ją przyjazną dla użytkownika. Jednak wszelkie modyfikacje wprowadzone w ustawieniach konfiguracyjnych wiążą się z innymi kosztami. Sprawdźmy kilka istotnych powodów, dla których nie należy używać pliku
.htaccess :
i. Spadek wydajności: Za każdym razem, gdy serwer skanuje katalog strony i jego plik .htaccess, strona się ładuje. W rezultacie spadek szybkości i wydajności staje się głównym problemem.
ii. Bezpieczeństwo: Dostęp do plików .htaccess daje pełną kontrolę nad konfiguracją serwera. Oznacza to, że każdy nieautoryzowany użytkownik, który uzyska dostęp do pliku .htaccess dostęp do .htaccess pliku, co z kolei prowadzi do potencjalnych zagrożeń bezpieczeństwa.
iii. Dostępność: Pliki .htaccess muszą być obsługiwane z najwyższą ostrożnością i uwagą. Jeśli pojawią się jakiekolwiek błędy w pliku .htaccess, może to doprowadzić do awarii całej strony.
Podsumowanie
W tym poradniku szczegółowo omówiliśmy włączanie, tworzenie i używanie pliku .htaccess. Omówiliśmy przypadki użycia, kiedy i gdzie plik .htaccess musi być używany. Wykorzystaj pliki .htaccess, aby zabezpieczyć swoją stronę i chronić ją przed atakami. Istnieje jednak kilka pułapek związanych z używaniem tego pliku konfiguracyjnego, których nie wolno ignorować. Krótko mówiąc, używaj plików .htaccess w zależności od sposobu korzystania z serwera i potrzeb dostępu użytkowników.
Ponadto inne samouczki sieciowe można znaleźć na naszym blogu:
-
Konfiguracja podstawowego uwierzytelniania HTTP z Nginx na Ubuntu 20.04
-
Nginx HTTP Proxying, równoważenie obciążenia, buforowanie i pamięć podręczna: omówienie
Komentarze
Brak komentarzy. Bądź pierwszy.