Plik .htaccess WordPress to jeden z najważniejszych plików w serwerach internetowych opartych na systemie Apache. Jest to plik konfiguracyjny, który umożliwia wprowadzenie różnego rodzaju ustawień na poziomie katalogu, takich jak przekierowania, zabezpieczenia, kompresja plików i wiele innych. Dzięki niemu możliwe jest dostosowanie działania serwera do indywidualnych potrzeb i wymagań.
- Dlaczego plik .htaccess jest ważny dla WordPress?
- Tworzenie i edycja pliku .htaccess w WordPress
- Zabezpieczenie pliku wp-config.php
- Blokowanie wykonywania skryptów PHP w poszczególnych folderach
- Zabezpieczenie panelu administratora dodatkowym hasłem
- Udzielanie dostępu do panelu administratora tylko dla wybranych IP
- Zablokowanie dostępu do strony z wybranych adresów IP
- Wyłączenie funkcji XML-RPC poprzez .htaccess
- Zabezpieczenie pliku .htaccess przed niepowołanym dostępem
- Tworzenie przekierowań 301 poprzez .htaccess
- Zablokowanie skanowania autorów w WordPressie
- Wyłączenie hotlinkowania zdjęć z twojego serwera
- Kompresowanie plików CSS, JavaScript, XML i plików tekstowych
- Zmiana lokalizacji folderu domeny na inny folder niż /public_html
- Wymuszanie ładowania treści mieszanych przez HTTPS, a nie HTTP
- Wymuszanie użycia SSL
- Przekierowanie z HTTP na HTTPS
- Przekierowanie z HTTPS na HTTP
- Wymuszanie załadowania pliku index.html
- Wyłączenie funkcji XML-RPC poprzez .htaccess
Dlaczego plik .htaccess jest ważny dla WordPress?
Dlaczego plik .htaccess jest ważny dla WordPress? Odpowiedź jest prosta – WordPress jest oparty na serwerze Apache, dlatego właśnie plik .htaccess jest kluczowy dla jego poprawnego funkcjonowania. W pliku .htaccess zapisywane są reguły, które kontrolują wiele elementów WordPressa, takich jak przekierowania, formatowanie linków czy zabezpieczenia dostępu. Bez tego pliku WordPress nie byłby w stanie działać tak, jak powinien.
Plik .htaccess jest plikiem konfiguracyjnym używanym na serwerach internetowych do wprowadzania specyficznych reguł, które określają, jak serwer ma odpowiadać na żądania HTTP. Reguły dodawane do pliku .htaccess mogą mieć różnorodne zastosowania i nie dotyczą tylko WordPress.
Plik .htaccess może być używany do:
- Konfiguracji bezpieczeństwa – można zastosować reguły, które zabezpieczą witrynę przed atakami typu SQL Injection, Cross-Site Scripting (XSS) oraz przed próbami hakerów.
- Przekierowania – można skonfigurować przekierowania z jednego adresu URL na inny, np. przekierowanie ze starej strony na nową stronę lub przekierowanie z adresu bez „www” na adres z „www”.
- Kompresji – można zastosować reguły, które pozwolą na kompresję plików, takich jak CSS, JavaScript, XML i pliki tekstowe, co zmniejszy czas ładowania witryny.
- Konfiguracji cache – można zastosować reguły, które pozwolą na ustawienie okresu ważności dla plików, co przyspieszy ładowanie strony dla użytkowników.
- Konfiguracji wyświetlania błędów – można zastosować reguły, które pozwolą na wyświetlanie lub ukrywanie informacji o błędach, takich jak błąd 404 lub 500.
Ogólnie rzecz biorąc, reguły dodawane do pliku .htaccess pozwalają na bardziej szczegółową kontrolę nad sposobem, w jaki serwer obsługuje żądania HTTP, a tym samym wpływają na wydajność, bezpieczeństwo i funkcjonalność witryny.
Tworzenie i edycja pliku .htaccess WordPress
Dowiedz się, jak stworzyć i edytować plik .htaccess w WordPress na serwerze FTP za pomocą DirectAdmin i menedżera FTP. Skorzystaj z naszych prostych instrukcji, aby przystosować plik .htaccess do swoich potrzeb.
Tworzenie pliku .htaccess w WordPress jest dość proste. Można to zrobić na kilka sposobów – przez FTP, SSH lub przez panel administracyjny WordPressa. Warto w tym miejscu zauważyć, że plik .htaccess jest jednym z domyślnych plików, który zostanie utworzony po zainstalowaniu CMS WordPress. Jeśli pomimo to nie posiadasz pliku .htaccess na serwerze FTP, utwórz go:
Analogicznie w tej samej lokalizacji, możesz przejść do jego edycji. W ten sposób nie potrzebujesz konfigurować dodatkowego, zewnętrznego oprogramowania.
Zabezpieczenie pliku wp-config.php
Plik wp-config.php jest jednym z najważniejszych plików w WordPressie, ponieważ zawiera informacje o połączeniu z bazą danych i kluczach uwierzytelniania. Dlatego ważne jest, aby zabezpieczyć ten plik przed niepowołanymi osobami. Można to zrobić za pomocą pliku .htaccess.
Reguła do zabezpieczenia pliku wp-config.php:
order allow,deny deny from all
Ta reguła blokuje dostęp do pliku wp-config.php poprzez zablokowanie wszystkich żądań dostępu. Wszystkie próby dostępu zostaną odrzucone, dzięki czemu plik będzie bezpieczny przed niepowołanymi osobami.
Blokowanie wykonywania skryptów PHP w folderach
Nie zawsze chcemy, aby skrypty PHP były wykonywane w każdym folderze na naszej stronie. Może to być niebezpieczne i prowadzić do ataków na naszą stronę. Dlatego ważne jest, aby zablokować wykonywanie skryptów PHP w niektórych folderach.
Reguła do blokowania wykonywania skryptów PHP:
deny from all
W powyższym przykładzie „/folder/niebezpieczny” to ścieżka do folderu, w którym nie chcemy, aby skrypty PHP były wykonywane. Ta reguła blokuje dostęp do folderu i wykonywania skryptów PHP.
Ważne jest, aby pamiętać, że blokowanie wykonywania skryptów PHP może spowodować problemy z działaniem strony internetowej, dlatego należy stosować tę regułę ostrożnie i tylko wtedy, gdy jest to naprawdę potrzebne.
Zabezpieczenie panelu administratora dodatkowym hasłem
Zabezpieczenie panelu administratora dodatkowym hasłem może znacznie zwiększyć bezpieczeństwo Twojej strony WordPress. Możesz zrobić to poprzez dodanie wpisu w pliku .htaccess, który wymusi wprowadzenie hasła przed dostępem do panelu administracyjnego. Aby to zrobić, musisz najpierw utworzyć plik .htpasswd, w którym będą przechowywane loginy i hasła użytkowników, którzy będą mieli dostęp do panelu administratora.
Do utworzenia pliku .htpasswd możesz skorzystać z generatora online, np. dostępnego pod adresem: https://www.web2generators.com/apache-tools/htpasswd-generator. Wystarczy podać nazwę użytkownika i hasło, a generator wygeneruje ciąg znaków, który będziesz musiał skopiować do pliku .htpasswd.
Następnie w pliku .htaccess należy dodać wpis:
AuthUserFile /ścieżka/do/twojego/pliku/.htpasswd AuthType Basic AuthName "Wprowadź login i hasło" Require valid-user
W pierwszej linii należy podać ścieżkę do pliku .htpasswd, który utworzyłeś wcześniej. W drugiej linii określamy typ uwierzytelniania – w tym przypadku jest to Basic. W trzeciej linii można wpisać dowolny tekst, który zostanie wyświetlony na ekranie logowania. Ostatnia linia określa, że dostęp do panelu administratora wymaga poprawnego loginu i hasła.
Udzielanie dostępu do panelu dla wybranych IP
Jeśli chcesz ograniczyć dostęp do panelu administratora tylko do wybranych adresów IP, możesz to zrobić poprzez dodanie wpisu w pliku .htaccess. W ten sposób zabezpieczysz swój panel administratora przed atakami ze strony nieznanych adresów IP.
Aby ograniczyć dostęp do panelu administratora tylko dla wybranych adresów IP, dodaj do pliku .htaccess następujący wpis:
Order deny,allow Deny from all Allow from xxx.xxx.xxx.xxx
W miejsce xxx.xxx.xxx.xxx wstaw adres IP, z którego będzie możliwy dostęp do panelu administratora. Jeśli chcesz dodać kilka adresów IP, po prostu dodaj kolejne linie z Allow from i adresami IP.
W ten sposób tylko osoby, które łączą się z Twoją witryną z wybranych adresów IP, będą miały dostęp do panelu administratora WordPress.
Zablokowanie dostępu do strony z wybranych adresów IP
Jeśli chcesz zablokować dostęp do Twojej strony z wybranych adresów IP, możesz to zrobić za pomocą pliku .htaccess. Możesz użyć poniższej reguły, aby zablokować dostęp do strony z określonych adresów IP:
order allow,deny deny from 192.168.1.1 deny from 192.168.1.2 allow from all
W tym przykładzie strona będzie dostępna dla wszystkich adresów IP z wyjątkiem 192.168.1.1 i 192.168.1.2. Zwróć uwagę na to, że musisz umieścić swój adres IP w regule, aby mieć nadal dostęp do strony.
Wyłączenie funkcji XML-RPC w .htaccess WordPress
Funkcja XML-RPC jest używana do zdalnego zarządzania Twoją witryną WordPress. Może być przydatna w niektórych przypadkach, ale może też stanowić potencjalne zagrożenie dla bezpieczeństwa. Możesz wyłączyć funkcję XML-RPC w pliku .htaccess, używając poniższej reguły:
deny from all
Ta reguła uniemożliwia dostęp do pliku xmlrpc.php, co oznacza, że funkcja XML-RPC nie będzie działać na Twojej stronie WordPress.
Zabezpieczenie .htaccess przed niepowołanym dostępem
Plik .htaccess może zawierać informacje krytyczne, takie jak hasła, reguły dostępu itp. Dlatego ważne jest, aby zabezpieczyć plik przed niepowołanym dostępem. Możesz to zrobić za pomocą poniższej reguły:
order allow,deny deny from all
Ta reguła uniemożliwia dostęp do pliku .htaccess, chyba że użytkownik jest na liście zezwalającej na dostęp.
Tworzenie przekierowań 301 poprzez .htaccess
Przekierowania 301 są przydatne, gdy zmieniasz adres strony lub przenosisz stronę na inny serwer. Możesz to zrobić za pomocą pliku .htaccess i poniższej reguły:
Redirect 301 /stara-strona.html http://www.twoja-strona.pl/nowa-strona.html
W tym przykładzie każdy użytkownik, który odwiedzi stara-strona.html, zostanie przekierowany na nowa-strona.html.
Zablokowanie skanowania autorów w WordPressie
WordPress domyślnie wyświetla listę wszystkich autorów na stronie /author/, co może być niebezpieczne, ponieważ umożliwia to potencjalnym hakerom uzyskanie informacji o kontach użytkowników. Można jednak zablokować dostęp do tej strony poprzez dodanie następującej reguły w pliku .htaccess:
RewriteEngine On RewriteCond %{REQUEST_URI} /author/ [NC] RewriteRule .* - [F]
Reguła ta sprawdza, czy adres URL zawiera „/author/” i blokuje dostęp do strony poprzez kod HTTP 403 Forbidden.
Wyłączenie hotlinkowania zdjęć z twojego serwera
Hotlinkowanie to proces polegający na umieszczeniu obrazka na stronie internetowej, przy użyciu bezpośredniego linku do pliku na innym serwerze. Oznacza to, że osoba lub strona, która umieściła ten link, wykorzystuje zasoby twojego serwera bez twojej wiedzy lub zgody. Można jednak łatwo zablokować hotlinkowanie zdjęć z twojego serwera poprzez dodanie następującej reguły do pliku .htaccess:
RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?twojadomena.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
Reguła ta sprawdza, czy adres URL źródłowy (referer) zawiera twoją domenę i blokuje dostęp do plików graficznych o rozszerzeniach jpg, jpeg, png i gif, jeśli adres URL źródłowy nie pasuje do twojej domeny.
Kompresowanie CSS, JavaScript, XML i plików tekstowych
Aby zmniejszyć rozmiar plików CSS, JavaScript, XML i plików tekstowych, można skompresować ich zawartość. W pliku .htaccess można użyć modułu kompresji Apache, aby skompresować te pliki. Do tego celu można użyć następujących reguł:
# Kompresowanie tekstowych typów MIME AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/x-httpd-php AddOutputFilterByType DEFLATE application/x-httpd-fastphp AddOutputFilterByType DEFLATE image/svg+xml # Nie kompresuj zasobów dla tych agentów użytkowników BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html Header append Vary User-Agent
Powyższe reguły włączą moduł DEFLATE i skompresują pliki tekstowe, pliki CSS, JavaScript, XML oraz pliki tekstowe. Pliki, które są już skompresowane, nie zostaną ponownie skompresowane.
Zmiana lokalizacji folderu domeny na inny niż /public_html
Aby zmienić lokalizację folderu domeny na inny folder niż /public_html, należy zmodyfikować plik .htaccess w folderze domeny. Oto przykładowa reguła, która przeniesie domenę do katalogu „nowy_katalog”:
RewriteEngine On RewriteCond %{HTTP_HOST} ^twoja_domana\.pl$ [NC] RewriteCond %{REQUEST_URI} !^/nowy_katalog/ RewriteRule (.*) /nowy_katalog/$1 [L]
Powyższa reguła przenosi żądania z domeny do katalogu „nowy_katalog”. Zwróć uwagę, że należy zmienić „twoja_domena” i „nowy_katalog” na odpowiednie wartości.
Wymuszanie ładowania treści mieszanych przez HTTPS
Aby wymusić ładowanie treści mieszanych przez HTTPS, a nie HTTP, można dodać następującą regułę do pliku .htaccess:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Powyższa reguła wymusi używanie protokołu HTTPS dla wszystkich żądań, które korzystają z protokołu HTTP. W ten sposób można zapewnić, że wszystkie połączenia z witryną będą szyfrowane, co zwiększa bezpieczeństwo przesyłanych danych.
Wymuszanie użycia SSL
Wymuszanie użycia protokołu SSL (Secure Sockets Layer) lub jego następcy, czyli TLS (Transport Layer Security) jest ważne dla zabezpieczenia komunikacji między serwerem a przeglądarką użytkownika. Aby wymusić użycie SSL, można dodać następującą regułę do pliku .htaccess:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Ta reguła sprawdza, czy protokół HTTPS jest włączony dla żądania, i jeśli nie, przekierowuje użytkownika na wersję HTTPS strony. Jest to szczególnie ważne w przypadku sklepów internetowych, gdzie przesyłane są poufne informacje, takie jak dane karty kredytowej.
Przekierowanie z HTTP na HTTPS
Jeśli witryna korzysta z protokołu HTTPS i chcesz wymusić korzystanie z niego przez wszystkie żądania, możesz dodać następującą regułę do pliku .htaccess:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Ta reguła sprawdza, czy protokół HTTPS jest włączony dla żądania, i jeśli nie, przekierowuje użytkownika na wersję HTTPS strony. Jest to szczególnie ważne w przypadku sklepów internetowych, gdzie przesyłane są poufne informacje, takie jak dane karty kredytowej.
Przekierowanie z HTTPS na HTTP
Jeśli z jakiegoś powodu chcesz przekierować użytkowników z witryny korzystającej z protokołu HTTPS na witrynę korzystającą z protokołu HTTP, można użyć następującej reguły:
RewriteEngine On RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Ta reguła sprawdza, czy protokół HTTPS jest włączony dla żądania, i jeśli tak, przekierowuje użytkownika na wersję HTTP strony. Jednak przekierowanie z HTTPS na HTTP jest obecnie uważane za niebezpieczne i niewskazane, ponieważ przesyłane informacje mogą zostać przechwycone przez osoby trzecie.
Wymuszanie załadowania pliku index.html
Jeśli chcesz, aby plik index.html był ładowany automatycznie bez konieczności wpisywania jego nazwy w adresie strony, możesz dodać następującą regułę do pliku .htaccess:
DirectoryIndex index.html
Ta reguła mówi, że w przypadku braku wskazania konkretnego pliku do wyświetlenia, ma on automatycznie wczytać plik index.html. Dzięki temu, jeśli użytkownik wejdzie na Twoją stronę bez podawania konkretnego pliku w adresie URL, automatycznie zostanie załadowany plik index.html. Warto pamiętać, że plik index.html musi znajdować się w głównym katalogu witryny, aby ta reguła działała poprawnie.
Wyłącz funkcję XML-RPC poprzez .htaccess WordPress
Wyłączenie funkcji XML-RPC poprzez .htaccess
XML-RPC to protokół, który pozwala na zdalne wywoływanie funkcji w WordPressie. Chociaż może to być przydatne dla niektórych zastosowań, takich jak aktualizacja treści na blogu z aplikacji mobilnej, to jest to również potencjalna luka w bezpieczeństwie. Dlatego, jeśli nie korzystasz z funkcji XML-RPC w swoim WordPressie, warto ją wyłączyć, aby zwiększyć bezpieczeństwo.
Aby wyłączyć funkcję XML-RPC poprzez plik .htaccess, należy dodać następujący kod:
Order Deny,Allow Deny from all
Ten kod mówi serwerowi, że ma zablokować dostęp do pliku xmlrpc.php (w którym znajduje się funkcja XML-RPC) i że nie powinien pozwalać na dostęp do niego z żadnego adresu IP. Dzięki temu można skutecznie wyłączyć funkcję XML-RPC.