Zabezpieczenie WordPress – Plik .htaccess – Co to jest, dlaczego jest tak ważny, gotowy plik do pobrania?
Plik .htaccess w WordPress – Co to jest i dlaczego jest tak ważny?
Plik .htaccess (Hypertext Access) to jeden z najważniejszych plików konfiguracyjnych w WordPressie i całym środowisku serwera Apache. Pomimo swojego niewielkiego rozmiaru, ma ogromny wpływ na działanie strony internetowej, umożliwiając zarządzanie przekierowaniami, bezpieczeństwem oraz wydajnością.
Co to jest plik .htaccess?
Plik .htaccess to ukryty plik konfiguracyjny używany przez serwery Apache, który pozwala na nadpisywanie domyślnych ustawień serwera w obrębie konkretnego katalogu. W WordPressie pełni kluczową rolę w obsłudze struktury linków (permalinków), ale może być również używany do innych zaawansowanych konfiguracji.
Gdzie znaleźć plik .htaccess w WordPressie?
Plik .htaccess znajduje się w głównym katalogu instalacji WordPressa (np. /public_html/
lub /www/
). W niektórych przypadkach może być ukryty, dlatego warto włączyć opcję wyświetlania ukrytych plików w menedżerze plików hostingu lub użyć klienta FTP.
Najważniejsze zastosowania pliku .htaccess w WordPressie
1. Struktura linków przyjaznych SEO
Domyślnie WordPress generuje wpisy w formie np. ?p=123
, co nie jest ani estetyczne, ani przyjazne dla SEO. Plik .htaccess pozwala na używanie tzw. „przyjaznych linków” np. https://mojastrona.pl/nazwa-wpisu/
.
Przykładowy kod dla WordPressa:
# Przekierowanie na przyjazne URL-e
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
2. Przekierowania 301 i 302
Plik .htaccess pozwala na szybkie przekierowanie adresów URL, co jest przydatne przy zmianie struktury strony lub migracji treści.
Przekierowanie 301 (stałe) na nowy adres:
Redirect 301 /stara-strona.html https://mojastrona.pl/nowa-strona.html
Przekierowanie 302 (tymczasowe):
Redirect 302 /tymczasowa-strona.html https://mojastrona.pl/nowa-strona.html
3. Zabezpieczenia WordPressa za pomocą .htaccess
🔒 Blokowanie dostępu do pliku wp-config.php
Plik wp-config.php
zawiera kluczowe dane konfiguracyjne WordPressa, w tym dane do bazy danych. Możemy go zabezpieczyć przed nieautoryzowanym dostępem:
<Files wp-config.php>
order allow,deny
deny from all
</Files>
🔒 Blokowanie edycji plików WordPressa
Aby zapobiec modyfikacjom plików z poziomu kokpitu WordPressa:
<Files wp-login.php>
order allow,deny
deny from all
allow from 192.168.1.1 # Podaj swój adres IP
</Files>
🔒 Ochrona przed hotlinkowaniem (kradzieżą zasobów)
Hotlinkowanie to sytuacja, gdy inne strony używają Twoich obrazów, zużywając Twój transfer. Możesz to zablokować:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)?mojastrona\.pl/ [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F]
4. Poprawa wydajności WordPressa za pomocą .htaccess
🚀 Włączenie kompresji GZIP
Zmniejsza rozmiar przesyłanych plików, co przyspiesza ładowanie strony:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/javascript
</IfModule>
🚀 Włączenie cache przeglądarki
Pozwala użytkownikom przechowywać pliki w pamięci podręcznej, co zmniejsza obciążenie serwera:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/javascript "access plus 1 week"
</IfModule>
5. Ochrona przed atakami brute-force na WordPressa
Jednym z najczęściej atakowanych plików jest wp-login.php
. Możemy ograniczyć dostęp do niego np. tylko dla określonego adresu IP:
<Files wp-login.php>
order deny,allow
deny from all
allow from 192.168.1.1
</Files>
Jak edytować plik .htaccess w WordPressie?
Plik .htaccess można edytować na kilka sposobów:
- Bezpośrednio przez menedżera plików w panelu hostingowym.
- Za pomocą klienta FTP (np. FileZilla).
- Przez wtyczki WordPress, np. „WP Htaccess Editor” czy „All in One SEO”.
🔴 Uwaga: Zawsze wykonaj kopię zapasową pliku przed edycją, aby uniknąć problemów z działaniem strony!
Przykładowy plik .htaccess
# Automatyczne przekierowanie do HTTPS
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# SSL
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# ZABLOKOWANIE DOSTĘPU DO WP-CONFIG
<files wp-config.php>
order allow,deny
deny from all
</files>
# BLOKADA XML-RPC - ZDALNE DODAWANIE TREŚCI
<files xmlrpc.php>
order deny,allow
deny from all
</files>
# BEGIN WordPress
# Dyrektywy zawarte między "BEGIN WordPress" oraz "END WordPress"
# są generowane dynamicznie i powinny być modyfikowane tylko za pomocą
# filtrów WordPressa. Zmiany dokonane bezpośrednio tutaj będą nadpisywane.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Pobierz przykładowy plik .htaccess – POBIERZ
Podsumowanie
Plik .htaccess to niezwykle potężne narzędzie, które wpływa na działanie WordPressa w wielu aspektach: od poprawy bezpieczeństwa, przez optymalizację SEO, aż po zarządzanie przekierowaniami i wydajnością. Jego prawidłowa konfiguracja może znacząco zwiększyć szybkość, stabilność i bezpieczeństwo Twojej strony.
Czy masz już skonfigurowany swój .htaccess? Jeśli masz pytania lub potrzebujesz pomocy, zostaw komentarz lub skontaktuj się z nami! 🚀