.htaccess
.htaccess to plik konfiguracyjny wykorzystywany przez serwer Apache (oraz kompatybilny LiteSpeed), który umożliwia nadpisywanie ustawień serwera w obrębie katalogu, w którym się znajduje, i wszystkich podkatalogów. Jego największą zaletą jest to, że zmiany działają natychmiast, bez restartu usługi i bez dostępu do głównej konfiguracji — dzięki temu na hostingu współdzielonym każdy klient może kontrolować zachowanie własnej strony, mimo że serwerem zarządza dostawca.
Na czym polega działanie .htaccess?
Przy każdym żądaniu Apache sprawdza, czy w ścieżce do żądanego pliku znajdują się pliki .htaccess, i stosuje zawarte w nich dyrektywy. Reguły zapisuje się prostą składnią tekstową, a najczęściej korzysta się z modułu mod_rewrite, który pozwala przepisywać i przekierowywać adresy. Ta elastyczność ma jednak koszt: sprawdzanie plików przy każdym żądaniu obciąża serwer bardziej niż konfiguracja centralna, dlatego przy dużym ruchu bywa wyłączane na rzecz reguł w głównej konfiguracji.
Zastosowanie w praktyce
Typowe zadania realizowane przez .htaccess to:
- Przekierowania — np. przekierowanie 301 ze starego adresu na nowy albo wymuszenie wersji z www lub bez.
- Przyjazne adresy URL — ukrywanie parametrów i tworzenie czytelnych adresów URL, na których opierają się WordPress, PrestaShop czy Joomla.
- Ochrona katalogów — zabezpieczenie hasłem (wraz z plikiem .htpasswd) lub blokada dostępu po adresie IP.
- Nagłówki i wydajność — ustawianie nagłówków bezpieczeństwa, kompresji gzip czy pamięci podręcznej przeglądarki.
Wystarczy jeden błąd składniowy, aby cała witryna zwróciła błąd 500, dlatego przed edycją .htaccess warto wykonać kopię pliku. Na typowym hostingu z panelem DirectAdmin plik ten jest głównym narzędziem konfiguracji dostępnym dla użytkownika.
Kolejność reguł w pliku ma znaczenie — Apache przetwarza je z góry na dół, więc np. bardziej szczegółowe przekierowania powinny znaleźć się przed ogólnymi. Warto też pamiętać, że zbyt rozbudowany zestaw reguł mod_rewrite potrafi zauważalnie spowolnić serwis przy dużym ruchu, dlatego w wymagających projektach reguły przenosi się do głównej konfiguracji serwera lub przechodzi na wydajniejszy Nginx.
Powiązane pojęcia
Najczęstsze pytania
Dlaczego nazwa pliku zaczyna się od kropki?
W systemach uniksowych pliki zaczynające się od kropki są ukryte i nie pojawiają się na domyślnej liście katalogu. Nazwa oznacza „hypertext access” i taka konwencja chroni plik konfiguracyjny przed przypadkowym wyświetleniem czy usunięciem przez użytkownika.
Czy .htaccess działa na serwerze Nginx?
Nie. Plik .htaccess to mechanizm serwera Apache i kompatybilnych (np. LiteSpeed). Nginx nie odczytuje tych plików — jego reguły przekierowań i uprawnień definiuje się centralnie w konfiguracji serwera, co jest wydajniejsze, ale wymaga dostępu administracyjnego.
