Poradnik hostingowy

Plik .htaccess - co robi i jak go bezpiecznie edytować

.htaccess to plik konfiguracyjny serwera WWW (Apache i LiteSpeed) leżący w katalogu strony. Steruje przekierowaniami, „ładnymi” adresami WordPressa, blokadami dostępu i nagłówkami - a każda literówka w nim kładzie całą stronę błędem 500. Dlatego obowiązuje jedna zasada: przed edycją kopia, po edycji natychmiastowy test.

Gdzie jest i dlaczego go nie widzisz

Plik leży w katalogu głównym strony (public_html), a nazwa zaczyna się od kropki - czyli jest ukryty. W FileZilli włącz Serwer - Wymuś pokazywanie plików ukrytych; menedżery plików w panelach mają analogiczny przełącznik. Działa kaskadowo: reguły z katalogu nadrzędnego obowiązują też w podkatalogach, a .htaccess w podkatalogu może je nadpisać - stąd bywa, że problem „siedzi” w pliku piętro wyżej. Na serwerach nginx plik nie działa wcale - tam konfigurację ustawia się po stronie hostingu.

Co WordPress trzyma w .htaccess

Standardowy blok między znacznikami # BEGIN WordPress ... # END WordPress obsługuje bezpośrednie odnośniki (ładne adresy wpisów). Nie edytuj wnętrza tego bloku - WordPress go nadpisuje; własne reguły dodawaj powyżej. Jeśli blok zniknie (np. po migracji), podstrony zaczną zwracać 404 - wygenerujesz go na nowo, klikając „Zapisz zmiany” w Ustawienia - Bezpośrednie odnośniki.

Najprzydatniejsze reguły z przykładami

Przekierowanie 301 pojedynczego adresu

Redirect 301 /stara-podstrona/ https://twojadomena.pl/nowa-podstrona/

Podstawa przy porządkach w strukturze strony - stary adres oddaje moc SEO nowemu.

Wymuszenie HTTPS

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Uwaga: tylko w jednym miejscu (nie równolegle we wtyczce) - podwójne wymuszanie kończy się pętlą przekierowań. Kontekst całej układanki HTTPS opisuje tekst strona nie jest bezpieczna.

Blokada katalogu lub pliku

<Files "wp-config.php">
  Require all denied
</Files>

Wyłączenie listowania katalogów

Options -Indexes

Cache przeglądarki dla plików statycznych

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/webp "access plus 1 month"
  ExpiresByType text/css "access plus 1 week"
</IfModule>

Wtyczki cache (np. LiteSpeed Cache) dopisują takie sekcje same - to ich znaczniki widujesz w pliku; więcej w tekście o LiteSpeed na hostingu.

Bezpieczna procedura edycji

  1. Pobierz kopię obecnego pliku (albo zmień nazwę kopii na .htaccess.bak na serwerze).
  2. Dodawaj reguły pojedynczo - jedna zmiana, zapis, odświeżenie strony.
  3. Strona padła błędem 500? Przywróć kopię - to najczęstsza przyczyna tej awarii, którą opisujemy w tekście o błędzie 500. Zwykle winna literówka lub dyrektywa niedostępna na Twoim hostingu.
  4. Testuj przekierowania w trybie prywatnym - przeglądarka zapamiętuje 301 i potrafi pokazywać stan sprzed poprawki.

Najczęstsze pytania

Nie mam pliku .htaccess - czy to błąd?

Najpierw upewnij się, że widzisz pliki ukryte. Jeśli naprawdę go nie ma, a strona działa - serwer używa ustawień domyślnych; WordPress utworzy plik przy zapisie bezpośrednich odnośników.

Czy .htaccess spowalnia stronę?

Minimalnie - serwer czyta go przy każdym żądaniu. Kilkadziesiąt reguł nie ma znaczenia; problemem bywają dopiero tysiące linii przekierowań, które lepiej przenieść do wtyczki lub mapy przekierowań.

Czym różni się Redirect od RewriteRule?

Redirect to proste „stary adres - nowy adres”. RewriteRule obsługuje wzorce i warunki (mod_rewrite) - nim działa wymuszanie HTTPS czy ładne adresy WordPressa. Do pojedynczych przekierowań wystarcza Redirect 301.

Czy na moim hostingu .htaccess w ogóle działa?

Na Apache i LiteSpeed (zdecydowana większość hostingów współdzielonych w Polsce) - tak. Szybki test: dodaj linię Options -Indexes i sprawdź, czy strona nadal działa; jeżeli hosting ignoruje plik lub go zabrania, dopytaj pomoc techniczną.

Podsumowanie

.htaccess to najpotężniejszy plik, jaki możesz zepsuć jedną literówką: przekierowania, HTTPS, blokady i adresy wpisów w jednym miejscu. Trzy nawyki czynią go bezpiecznym - kopia przed edycją, jedna zmiana naraz, własne reguły poza blokiem WordPressa. A gdy strona po edycji leży, przywrócenie kopii naprawia ją w 30 sekund.

Hosting nr 1 w naszym rankingu

McProdukt: pakiety od 29,99 zł netto za rok (1 GB) do 500 GB, SSL i backupy w cenie, 14-dniowy darmowy okres testowy, a przede wszystkim cena odnowienia równa cenie startowej - bez skoku po pierwszym roku. Migracja strony i poczty gratis.