Co to jest format pliku HTACCESS?
.htaccess to plik konfiguracyjny serwera WWW Apache. W przeciwieństwie do większości plików, .htaccess nie zawiera nazwy pliku przed kropką - wiodąca kropka jest częścią samej nazwy, co czyni go domyślnie plikiem ukrytym w systemach Linux i macOS. Pliki .htaccess nie powinny być ręcznie edytowane przez nieupoważnionych lub niewykwalifikowanych użytkowników. Plik przechowuje całą konfigurację w formacie tekstowym.
Pliki .htaccess zawierają ustawienia konfiguracyjne dla poszczególnych katalogów, które definiują funkcje serwera, takie jak:
- strona indeksowa (domyślna) katalogu,
- ograniczenia dostępu dla określonych adresów IP,
- niestandardowe strony błędów (np. 404 Page Not Found),
- przekierowania i przepisywanie adresów URL (
RewriteRule/RewriteCond), - ochrona katalogów hasłem (
AuthType,AuthUserFile), - dodatkowe ustawienia bezpieczeństwa serwera i niestandardowe nagłówki odpowiedzi HTTP.
Aby plik .htaccess odniósł skutek, opcja AllowOverride musi być ustawiona na wartość inną niż None w nadrzędnym pliku httpd.conf - na zabezpieczonych serwerach przetwarzanie .htaccess jest często całkowicie wyłączone.
Ponieważ Apache odczytuje .htaccess przy każdym żądaniu HTTP do swojego katalogu, wiąże się to z mierzalnym kosztem wydajności. Własna dokumentacja Apache zaleca umieszczanie równoważnych dyrektyw w blokach konfiguracyjnych serwera lub VirtualHost, ponieważ są one ładowane tylko raz przy uruchomieniu.
.htaccess jest specyficzny dla Apache; Nginx go nie obsługuje i wymaga równoważnych reguł w nginx.conf. Towarzyszący plik .htpasswd przechowuje zahaszowane dane uwierzytelniające dla podstawowego uwierzytelniania HTTP (Basic Authentication).
Bezpieczeństwo
RYZYKO: HIGHSam plik .htaccess jest bezpiecznym plikiem tekstowym do otwarcia w edytorze. Stanowi on jednak KRYTYCZNĄ powierzchnię ataku na serwerach WWW: 1. Atak przez przesłanie pliku: jeśli aplikacja WWW pozwala użytkownikom przesyłać pliki do katalogu dostępnego z sieci, a AllowOverride w Apache zezwala na .htaccess, atakujący, który prześle spreparowany .htaccess, może ponownie włączyć wykonywanie PHP w katalogu wysyłania i uruchomić powłoki internetowe (webshells). Łagodzenie: przechowuj przesłane pliki poza głównym katalogiem dokumentów; ustaw AllowOverride None dla katalogów wysyłania; blokuj tworzenie .htaccess w katalogach wysyłania. 2. Ujawnienie informacji: błędnie skonfigurowany serwer, który serwuje .htaccess jako plik tekstowy (zamiast blokować dostęp do plików kropkowych), ujawnia konfigurację serwera, strukturę katalogów i potencjalnie odniesienia do danych uwierzytelniających. Domyślna konfiguracja Apache blokuje dostęp do plików .htaccess (FilesMatch ^\.ht).
Szczegóły formatu
w pigułceProgramy otwierające pliki HTACCESS
Szczegóły techniczne
specyfikacja| Pochodzenie | Odziedziczony po NCSA HTTPd (1994); Apache HTTP Server obsługuje go od wersji 1.0 (1995) |
| Nazwa pliku | Dotfile - pełna nazwa pliku to `.htaccess`; domyślnie ukryty w systemach Unix i macOS |
| Typ pliku | Tekstowa konfiguracja Apache dla poszczególnych katalogów |
| Kodowanie | UTF-8 lub ASCII (musi być zgodne z ustawieniami regionalnymi serwera) |
| Typowy rozmiar pliku | 100 bajtów - 50 KB (większość plików poniżej 5 KB) |
| Częstotliwość przetwarzania | Odczytywany przez Apache przy każdym żądaniu HTTP do katalogu zawierającego plik i wszystkich jego podkatalogów |
| Wymagania wstępne | `AllowOverride` nie może być ustawione na `None` w nadrzędnym `httpd.conf`; w przeciwnym razie `.htaccess` jest ignorowany bez powiadomienia |
| Typowe dyrektywy | `RewriteRule`, `RewriteCond`, `ErrorDocument`, `AuthType`, `AuthUserFile`, `Header`, `Options`, `Redirect` |
| Składnia kontroli dostępu | Apache 2.4 zastąpił `Allow`/`Deny` przez `Require`; starsza składnia wymaga `mod_access_compat` |
| Kompatybilność z Nginx | Nieobsługiwany przez Nginx; reguły muszą być ręcznie przetłumaczone na dyrektywy `nginx.conf` |
| Uwaga dotycząca wydajności | Powoduje odczyty z dysku przy każdym żądaniu; Apache zaleca preferowanie `httpd.conf` lub bloków VirtualHost do konfiguracji |
| Ryzyko bezpieczeństwa | Przesłany przez atakującego plik `.htaccess` w katalogu WWW z uprawnieniami do zapisu może umożliwić wykonanie skryptów po stronie serwera |
| Wydano | 1994 (NCSA HTTPd, predecessor to Apache; Apache inherited it from 1995) |
| Najnowsza wersja | Apache HTTP Server 2.4.x directive syntax (current) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | httpd.apache.org |
Konwersje HTACCESS
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki HTACCESS.