8 sposobów na naprawienie błędu 403 Forbidden na swojej stronie internetowej
Błąd 403 Forbidden to kod statusu HTTP zwracany przez serwer WWW, gdy rozumie on żądanie klienta, ale aktywnie odmawia jego realizacji z powodu niewystarczających uprawnień. W przeciwieństwie do błędu 404 (zasób nie znaleziony), błąd 403 potwierdza, że zasób istnieje — serwer po prostu nie zezwala na dostęp do niego. To rozróżnienie ma ogromne znaczenie podczas diagnozowania przyczyny problemu.
Błąd może pochodzić z wielu różnych warstw: uprawnień systemu plików, dyrektyw .htaccess, bloków konfiguracji na poziomie serwera, reguł blokowania IP, polityk CDN lub WAF, a nawet wadliwie działającej wtyczki WordPress. Ten przewodnik omawia wszystkie istotne poprawki w kolejności prawdopodobieństwa, wraz z dokładnymi poleceniami, fragmentami konfiguracji i przypadkami brzegowymi, które większość poradników całkowicie pomija.
Co powoduje błąd 403 Forbidden
Przed zastosowaniem jakiejkolwiek poprawki warto zrozumieć drzewo decyzyjne, które serwer WWW stosuje. Gdy Apache lub NGINX otrzymuje żądanie, ocenia:
- Uprawnienia systemu plików — czy użytkownik procesu serwera ma dostęp do odczytu pliku?
- Własność — czy plik należy do właściwego użytkownika (zazwyczaj
www-data,apachelubnginx)? - Dyrektywy konfiguracji serwera — czy bloki
<Directory>,<Location>lubserver {}jawnie odmawiają dostępu? - Reguły
.htaccess— czy dyrektywyDeny,RequirelubOptionsnadpisują wartości domyślne? - Reguły na poziomie aplikacji — czy wtyczka CMS, WAF lub moduł bezpieczeństwa przechwytuje żądanie?
- Blokady na poziomie IP — czy żądający adres IP znajduje się na liście blokowanych?
Zidentyfikowanie odpowiedzialnej warstwy skraca czas rozwiązywania problemów o połowę.
Poprawka 1: Korekta uprawnień plików i katalogów
Nieprawidłowe uprawnienia UNIX są najczęstszą przyczyną błędów 403 w środowiskach hostingu współdzielonego i VPS. Proces serwera WWW musi mieć co najmniej uprawnienie odczytu (r) do plików oraz uprawnienie odczytu i wykonania (rx) do każdego katalogu w ścieżce do żądanego zasobu.
Standardowe wartości uprawnień:
| Typ zasobu | Ósemkowy | Symboliczny | Znaczenie |
|---|---|---|---|
| Zwykłe pliki | 644 | -rw-r--r-- | Właściciel: odczyt/zapis; Grupa/Inni: odczyt |
| Pliki PHP/skrypty | 644 | -rw-r--r-- | Nigdy 755, chyba że jest to wyraźnie wymagane |
| Katalogi | 755 | drwxr-xr-x | Właściciel: pełny; Grupa/Inni: odczyt+wykonanie |
| Wrażliwe pliki konfiguracyjne | 600 | -rw------- | Tylko właściciel |
WordPress wp-config.php | 640 | -rw-r----- | Właściciel + odczyt grupy; brak dostępu dla innych |
Krytyczny przypadek brzegowy: Jeśli jakikolwiek katalog nadrzędny w ścieżce nie ma uprawnienia wykonania (x) dla użytkownika serwera, każdy plik wewnątrz niego zwróci błąd 403 — nawet jeśli sam plik ma prawidłowe uprawnienia. Zawsze sprawdzaj całą ścieżkę, a nie tylko docelowy plik.
Aby rekurencyjnie naprawić uprawnienia przez SSH:
# Fix directory permissions
find /var/www/html -type d -exec chmod 755 {} ;
# Fix file permissions
find /var/www/html -type f -exec chmod 644 {} ;
# Fix ownership (replace www-data with your server user)
chown -R www-data:www-data /var/www/htmlAby sprawdzić efektywnego użytkownika, jako który działa Twój serwer WWW:
ps aux | grep -E 'apache|nginx|httpd' | grep -v grep | awk '{print $1}' | sort -uJeśli korzystasz z planu VPS Hosting z dostępem root, możesz uruchomić te polecenia bezpośrednio. Na hostingu współdzielonym użyj Menedżera plików w panelu sterowania lub klienta FTP, takiego jak FileZilla, kliknij prawym przyciskiem myszy plik lub katalog i wybierz „Zmień uprawnienia”.
Poprawka 2: Diagnoza i naprawa pliku .htaccess
Apache odczytuje pliki .htaccess na każdym poziomie katalogu, od katalogu głównego serwisu do żądanego zasobu. Jedna błędnie sformułowana dyrektywa — lub dyrektywa wstawiona przez wtyczkę bezpieczeństwa — może zablokować dostęp do całej sekcji Twojej witryny.
Krok 1: Ustal, czy .htaccess jest przyczyną problemu
Zmień nazwę pliku, aby tymczasowo go wyłączyć:
mv /var/www/html/.htaccess /var/www/html/.htaccess.bakOdśwież stronę. Jeśli błąd 403 zniknie, plik .htaccess jest winowajcą.
Krok 2: Zidentyfikuj problematyczną dyrektywę
Typowe dyrektywy .htaccess powodujące błędy 403:
# Overly broad IP deny rule
Deny from all
# Missing Allow directive paired with Deny
Order deny,allow
Deny from all
# (Allow from all is absent)
# Incorrect Options directive
Options -Indexes -ExecCGI
# This is fine, but the following blocks everything:
Options None
# Require directive blocking all (Apache 2.4+)
Require all deniedKrok 3: Wygeneruj czysty plik .htaccess dla WordPress
Przejdź do Ustawienia > Bezpośrednie odnośniki w panelu WordPress i kliknij Zapisz zmiany bez wprowadzania jakichkolwiek modyfikacji. WordPress wygeneruje ponownie prawidłowy plik .htaccess. Standardowy plik .htaccess WordPress wygląda następująco:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPressKrok 4: Sprawdź AllowOverride w głównej konfiguracji serwera
Jeśli AllowOverride None jest ustawione w httpd.conf lub bloku wirtualnego hosta, Apache całkowicie ignoruje pliki .htaccess — jednak niektóre dyrektywy mogą nadal obowiązywać z głównej konfiguracji i powodować konflikty z oczekiwanym zachowaniem.
grep -r "AllowOverride" /etc/apache2/Aby .htaccess działało, potrzebujesz co najmniej:
<Directory /var/www/html>
AllowOverride All
</Directory>Poprawka 3: Dezaktywacja wtyczek i motywów WordPress
Wtyczki bezpieczeństwa (Wordfence, iThemes Security, Sucuri) często dodają reguły blokowania oparte na IP, dyrektywy mod_security lub niestandardowe wpisy .htaccess, które powodują błędy 403 — czasami blokując dostęp właścicielowi witryny.
Masowa dezaktywacja wszystkich wtyczek przez FTP lub SSH:
mv /var/www/html/wp-content/plugins /var/www/html/wp-content/plugins_disabledJeśli błąd zniknie, ponownie aktywuj wtyczki jedna po drugiej, przywracając oryginalną nazwę folderu, a następnie przenosząc poszczególne katalogi wtyczek poza folder i z powrotem, aż do zidentyfikowania winowajcy.
Błędy 403 związane z motywem są rzadsze, ale zdarzają się, gdy hook functions.php motywu ingeruje w obsługę żądań lub gdy motyw wymusza wymagania logowania na określonych stronach. Aby to przetestować, przełącz się na domyślny motyw WordPress (Twenty Twenty-Four) przez phpMyAdmin, jeśli nie możesz uzyskać dostępu do panelu:
UPDATE wp_options SET option_value = 'twentytwentyfour' WHERE option_name = 'template';
UPDATE wp_options SET option_value = 'twentytwentyfour' WHERE option_name = 'stylesheet';Poprawka 4: Wyczyszczenie pamięci podręcznej przeglądarki i plików cookie
Przeglądarki agresywnie buforują odpowiedzi HTTP, w tym odpowiedzi z błędami. Błąd 403 zwrócony raz może być buforowany i odtwarzany nawet po rozwiązaniu podstawowego problemu. Dotyczy to szczególnie sytuacji, gdy przed Twoim serwerem znajduje się CDN lub odwrotny serwer proxy (Cloudflare, Varnish).
Poprawka na poziomie przeglądarki:
Otwórz narzędzia deweloperskie przeglądarki (F12), przejdź do zakładki Sieć, kliknij prawym przyciskiem myszy nieudane żądanie i wybierz Wyczyść pamięć podręczną przeglądarki — lub użyj twardego odświeżenia:
- Windows/Linux:
Ctrl + Shift + R - macOS:
Cmd + Shift + R
Poprawka na poziomie CDN/proxy:
Jeśli używasz Cloudflare, wyczyść pamięć podręczną dla konkretnego URL z panelu Cloudflare w sekcji Buforowanie > Czyszczenie pamięci podręcznej > Niestandardowe czyszczenie.
Ważna uwaga: Jeśli błąd 403 jest serwowany przez sam Cloudflare (zobaczysz „Error 1020″ lub stronę błędu z brandingiem Cloudflare), blokada jest egzekwowana na poziomie CDN za pomocą reguły zapory sieciowej lub blokady reputacji IP — nie przez Twój serwer źródłowy. Naprawienie uprawnień serwera nie przyniesie żadnego efektu w tym scenariuszu. Sprawdź dziennik Bezpieczeństwo > Zdarzenia w Cloudflare, aby to potwierdzić.
Poprawka 5: Przegląd reguł blokowania IP i blokad zapory sieciowej
Błędy 403 oparte na IP są powszechne, gdy wtyczki bezpieczeństwa, fail2ban lub ręczne reguły iptables blokują prawidłowy adres IP — w tym Twój własny.
W cPanel (Blokowanie IP):
- Zaloguj się do cPanel.
- Przejdź do Bezpieczeństwo > Blokowanie IP.
- Przejrzyj listę zablokowanych IP i usuń wpisy, które nie powinny się tam znajdować.
W Apache .htaccess lub httpd.conf:
# Apache 2.2 syntax
Order deny,allow
Deny from 203.0.113.45
# Apache 2.4 syntax
<RequireAll>
Require all granted
Require not ip 203.0.113.45
</RequireAll>Przez fail2ban (powszechne w środowiskach VPS):
# List all jails
fail2ban-client status
# Check if your IP is banned in the apache-auth jail
fail2ban-client status apache-auth
# Unban an IP address
fail2ban-client set apache-auth unbanip 203.0.113.45Przez iptables:
# List rules with line numbers
iptables -L INPUT -n --line-numbers
# Remove a specific DROP rule (replace 5 with the actual line number)
iptables -D INPUT 5Na Serwerze Dedykowanym, gdzie kontrolujesz pełny stos sieciowy, zawsze weryfikuj zarówno reguły zapory sieciowej na poziomie aplikacji, jak i na poziomie jądra systemu, zanim dojdziesz do wniosku, że problem leży w konfiguracji serwera WWW.
Poprawka 6: Wyłączenie lub ponowna konfiguracja ochrony przed hotlinkingiem
Ochrona przed hotlinkingiem działa poprzez sprawdzanie nagłówka HTTP Referer. Jeśli żądanie dociera z nagłówkiem Referer, który nie znajduje się na liście zatwierdzonych, serwer zwraca błąd 403. Ten mechanizm może działać nieprawidłowo w kilku scenariuszach:
- Bezpośredni dostęp przez URL — niektóre konfiguracje blokują żądania bez nagłówka
Referer, co dotyczy użytkowników wpisujących URL bezpośrednio, klikających linki w klientach poczty e-mail lub korzystających z przeglądarek nastawionych na prywatność, które usuwają nagłówki referrer. - Przejścia z HTTPS do HTTP — przeglądarki nie wysyłają nagłówka
Refererpodczas nawigacji ze strony HTTPS do zasobu HTTP, co powoduje, że ochrona przed hotlinkingiem blokuje żądanie. - Dostęp przez API lub skrypt — żądania programowe często całkowicie pomijają nagłówek
Referer.
W cPanel (Ochrona przed hotlinkingiem):
- Przejdź do Bezpieczeństwo > Ochrona przed hotlinkingiem.
- Upewnij się, że Twoja domena (zarówno wariant
http://, jak ihttps://) znajduje się na liście Adresy URL z dozwolonym dostępem. - Podczas testowania tymczasowo kliknij Wyłącz i sprawdź, czy błąd 403 znika.
Bezpośrednio w .htaccess:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www.)?yourdomain.com/ [NC]
RewriteRule .(jpg|jpeg|png|gif|webp|svg)$ - [F,L]Aby zezwolić na bezpośredni dostęp (pusty Referer), usuń wiersz RewriteCond %{HTTP_REFERER} !^$.
Poprawka 7: Korekta konfiguracji serwera Apache lub NGINX
Gdy kontrolujesz serwer — tak jak w przypadku VPS z cPanel lub dedykowanej instancji bare-metal — błędnie skonfigurowane dyrektywy wirtualnego hosta lub bloku serwera są częstym źródłem błędów 403.
Konfiguracja Apache
Typowa błędna konfiguracja — brakujące Require all granted:
W Apache 2.4 model autoryzacji uległ znaczącym zmianom. Stara dyrektywa Allow from all jest przestarzała. Bez jawnej instrukcji Require Apache domyślnie odmawia dostępu.
<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>Sprawdź Options -Indexes: Ta dyrektywa zapobiega listowaniu katalogów (zwracając błąd 403, gdy nie istnieje plik indeksu). Jeśli katalog nie ma pliku index.html ani index.php, Apache zwraca błąd 403. Jest to celowe zachowanie związane z bezpieczeństwem — ale jeśli oczekujesz listowania katalogu, dodaj Options +Indexes.
Zweryfikuj konfigurację i uruchom ponownie:
apachectl configtest
systemctl reload apache2Konfiguracja NGINX
Typowa błędna konfiguracja — nieprawidłowa ścieżka root lub brakujący indeks:
server {
listen 80;
server_name yourdomain.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
}Jeśli dyrektywa root wskazuje na ścieżkę, która nie istnieje lub której użytkownik procesu nginx nie może odczytać, każde żądanie zwraca błąd 403.
Sprawdź dzienniki błędów NGINX, aby poznać dokładną przyczynę:
tail -n 50 /var/log/nginx/error.logBłąd 403 z NGINX prawie zawsze generuje wpis w dzienniku podobny do:
2024/01/15 10:23:45 [error] 1234#0: *1 "/var/www/html/index.html" is forbidden (13: Permission denied)Kod błędu 13 oznacza Odmowę dostępu na poziomie systemu operacyjnego — wróć do Poprawki 1 i sprawdź uprawnienia systemu plików oraz własność.
Przetestuj i przeładuj NGINX:
nginx -t
systemctl reload nginxApache vs. NGINX: Porównanie rozwiązywania problemów z błędem 403
| Czynnik | Apache | NGINX |
|---|---|---|
| Plik konfiguracyjny dla katalogu | .htaccess (jeśli AllowOverride All) | Nieobsługiwane; konfiguracja tylko w bloku serwera |
| Domyślny model dostępu (v2.4+) | Odmowa, chyba że Require all granted | Odmowa, jeśli ścieżka root jest nieczytelna lub brakuje jej |
| Listowanie katalogów | Options +Indexes aby włączyć | autoindex on; aby włączyć |
| Składnia blokowania IP | Require not ip x.x.x.x | deny x.x.x.x; w location {} |
| Polecenie testowania konfiguracji | apachectl configtest | nginx -t |
| Polecenie przeładowania | systemctl reload apache2 | systemctl reload nginx |
| Lokalizacja dziennika | /var/log/apache2/error.log | /var/log/nginx/error.log |
Odpowiednik .htaccess | Natywna obsługa | Wymaga konwersji na dyrektywy nginx.conf |
Poprawka 8: Audyt certyfikatu SSL i konfiguracji przekierowania HTTPS
Ta poprawka jest nieobecna w większości poradników dotyczących błędu 403, a mimo to jest prawdziwą i często pomijaną przyczyną. Błędnie skonfigurowane reguły przekierowania SSL mogą powodować błędy 403 w określonych scenariuszach.
Scenariusz 1: Wymuszanie HTTPS przed ważnością certyfikatu
Jeśli przekierowanie .htaccess wymusza cały ruch na HTTPS, ale certyfikat SSL nie jest jeszcze dostarczony lub wygasł, niektóre konfiguracje serwera zwracają błąd 403 zamiast błędu certyfikatu.
# Problematic if SSL is not configured on the server
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Sprawdź, czy Twój certyfikat jest aktywny i prawidłowo zainstalowany przed wymuszeniem przekierowań HTTPS.
Scenariusz 2: Wymóg certyfikatu klienta mod_ssl
Jeśli Twoja konfiguracja Apache wymaga certyfikatów SSL po stronie klienta do uwierzytelniania, a przeglądarka nie przedstawia żadnego, Apache zwraca błąd 403:
<Directory /var/www/secure>
SSLVerifyClient require
SSLVerifyDepth 1
</Directory>Jeśli nie zaimplementowałeś celowo wzajemnego TLS (mTLS), usuń tę opcję lub ustaw SSLVerifyClient none.
Scenariusz 3: Preładowanie HSTS z nieprawidłowym łańcuchem przekierowań
Pętla przekierowań spowodowana konfliktującymi nagłówkami HSTS i regułami HTTP-to-HTTPS może objawiać się jako błąd 403 w określonych kombinacjach przeglądarki/proxy. Sprawdź pełny łańcuch przekierowań za pomocą:
curl -I -L --max-redirs 10 http://yourdomain.comSystematyczna diagnoza: Odczytywanie dzienników błędów
Każda z powyższych poprawek powinna być połączona z monitorowaniem dzienników w czasie rzeczywistym. Zgadywanie bez czytania dzienników marnuje czas.
Apache — obserwuj dziennik błędów na żywo:
tail -f /var/log/apache2/error.log | grep 403NGINX — obserwuj dziennik błędów na żywo:
tail -f /var/log/nginx/error.log | grep 403Środowiska cPanel — dostęp do dzienników przez:
tail -f /usr/local/apache/logs/error_logWpis w dzienniku prawie zawsze powie Ci dokładnie, który plik wywołał błąd 403 i dlaczego — odmowa dostępu, brakujący indeks lub jawna reguła odmowy.
Macierz decyzyjna: Wybór właściwej poprawki
Użyj tej macierzy, aby zidentyfikować najbardziej prawdopodobną poprawkę na podstawie objawów:
| Objaw | Najbardziej prawdopodobna przyczyna | Podstawowa poprawka |
|---|---|---|
| Błąd 403 na wszystkich stronach po migracji | Własność pliku zmieniona podczas transferu | Poprawka 1 — chown i chmod rekurencyjnie |
| Błąd 403 po zainstalowaniu wtyczki WordPress | Wtyczka dodała reguły .htaccess | Poprawka 2 + Poprawka 3 |
| Błąd 403 tylko na plikach graficznych lub multimedialnych | Błędna konfiguracja ochrony przed hotlinkingiem | Poprawka 6 |
| Błąd 403 po zmianie IP | Reguła blokowania IP celująca w stary adres IP | Poprawka 5 |
| Błąd 403 na świeżym VPS bez CMS | Brakujące Require all granted w Apache 2.4 | Poprawka 7 |
| Błąd 403 po włączeniu SSL | Błędna konfiguracja przekierowania HTTPS lub mod_ssl | Poprawka 8 |
| Błąd 403 tylko w jednej przeglądarce | Buforowana odpowiedź z błędem | Poprawka 4 |
| Błąd 403 ze strony błędu Cloudflare | Reguła zapory CDN lub blokada reputacji IP | Poprawka 4 (czyszczenie CDN) + panel Cloudflare |
| Błąd 403 na URL katalogu, nie na plikach | Brak pliku indeksu + Options -Indexes | Poprawka 7 — dodaj plik indeksu lub włącz +Indexes |
Kluczowe wnioski techniczne
- Zawsze czytaj dziennik błędów serwera jako pierwszy krok — w ciągu kilku sekund wskazuje dokładny plik i powód błędu 403.
- W Apache 2.4+,
Require all grantedjest obowiązkowe w każdym bloku<Directory>. Jego pominięcie jest najczęstszą przyczyną błędu 403 na świeżych konfiguracjach serwera. - Same uprawnienia do plików są niewystarczające — własność musi odpowiadać użytkownikowi procesu serwera WWW (
www-data,apache,nginx). - Błąd 403 serwowany przez CDN (Cloudflare, Fastly) jest całkowicie oddzielny od błędu 403 serwowanego przez Twój serwer źródłowy. Naprawienie jednego nie ma żadnego wpływu na drugie.
- Na witrynach WordPress zawsze testuj z masowo wyłączonymi wtyczkami przed poświęcaniem czasu na diagnozę na poziomie serwera.
- Jeśli zarządzasz własną infrastrukturą na VPS lub Serwerze Dedykowanym, uwzględnij w analizie dzienniki
fail2bani regułyiptables— działają one poniżej warstwy serwera WWW i są niewidoczne dla narzędzi do debugowania na poziomie aplikacji. - Reguły ochrony przed hotlinkingiem blokujące puste nagłówki
Refererbędą wpływać na prawidłowych użytkowników korzystających z przeglądarek nastawionych na prywatność oraz klikających linki w wiadomościach e-mail — zawsze dodawaj wyjątek dla pustych referrerów.
FAQ
Jaka jest różnica między błędem 403 Forbidden a błędem 401 Unauthorized?
Błąd 401 Unauthorized oznacza, że serwer wymaga uwierzytelnienia, a klient nie podał prawidłowych danych uwierzytelniających — ponowne uwierzytelnienie może rozwiązać problem. Błąd 403 Forbidden oznacza, że serwer zidentyfikował, kim jesteś (lub nie wymaga uwierzytelnienia), ale jawnie odmawia dostępu niezależnie od okoliczności. Podanie danych uwierzytelniających nie pomoże w przypadku błędu 403.
Czy błąd 403 może wpłynąć na pozycję mojej witryny w wynikach wyszukiwania?
Tak. Jeśli Googlebot otrzyma błąd 403 podczas indeksowania strony, nie może jej zaindeksować. Trwałe błędy 403 na ważnych adresach URL spowodują ich wypadnięcie z wyników wyszukiwania. Użyj narzędzia Inspekcja URL w Google Search Console, aby sprawdzić, czy Googlebot może uzyskać dostęp do Twoich stron, i monitoruj raport Pokrycie pod kątem błędów indeksowania związanych z błędem 403.
Dlaczego błąd 403 pojawia się tylko dla określonych typów plików (obrazy, PDF)?
Prawie zawsze wskazuje to na ochronę przed hotlinkingiem (Poprawka 6) lub regułę specyficzną dla typu MIME w .htaccess. Sprawdź dyrektywy FilesMatch lub RewriteRule celujące w określone rozszerzenia. Sprawdź również, czy katalog zawierający te pliki ma uprawnienia 755 i należy do właściwego użytkownika serwera.
Jak naprawić błąd 403, jeśli nie mam dostępu przez SSH ani FTP?
Użyj webowego Menedżera plików dostępnego w panelu hostingowym (cPanel, Plesk lub DirectAdmin), aby sprawdzić i zmodyfikować uprawnienia plików oraz pliki .htaccess. W przypadku problemów specyficznych dla WordPress, narzędzie WP-CLI (jeśli jest dostępne przez terminal panelu sterowania) lub bezpośredni dostęp do bazy danych przez phpMyAdmin może pomóc w dezaktywacji wtyczek i zmianie motywów bez SSH.
Czy błąd 403 oznacza, że moja witryna została zhakowana?
Niekoniecznie, ale może być objawem włamania. Złośliwe oprogramowanie czasami wstrzykuje reguły odmowy do plików .htaccess lub modyfikuje uprawnienia plików, aby uniemożliwić dostęp. Jeśli nie możesz zidentyfikować przyczyny błędu 403 opartej na konfiguracji, przeskanuj pliki w poszukiwaniu nieautoryzowanych modyfikacji za pomocą narzędzia takiego jak rkhunter, Wordfence (jeśli możesz uzyskać dostęp do WordPress) lub skanera złośliwego oprogramowania Twojego dostawcy hostingu. Jeśli to możliwe, porównaj skróty plików z kopiami zapasowymi w dobrym stanie.
