Chyba 403 – Forbidden

Stavový kód 403 – Forbidden říká, že nemáte oprávnění nahlížet do dané složky (adresáře). Většinou je důsledkem změny nastavení chování serveru. Nejčastěji pokud jste něco změnili v souboru .htaccess. Existuje však i několik dalších variant, kdy na něj můžete narazit. Postupně si probereme všechny.

Omezený přístup do administrace

Jestliže se vám zobrazila následující chybová hláška, znamená to, že nemáte přístup k souborů v administraci.

Forbidden

You don't have permission to access /wp-admin/ on this server.

Než začneme situaci řešit, zkontrolujte si zdali máte přístup na samotný web, popřípadě složek wp-content/uploads k některému již existujícími obrázku. Pokud se objevuje chyba všude může být problémů více a je třeba projít jednu variantu za druhou.

Zakázaný přístup přes .htaccess

Připojte se na server přes FTP klienta (popřípadě SSH). Jestliže nemáte přístup pouze do adresáře wp-admin, najděte v něm soubor .htaccess a zobrazte si jeho obsah. Někdy může být .htaccess skrytý, je třeba nastavit FTP klienta, tak aby zobrazoval skryté a systémové soubory.

V htaccess hledejte následující instrukce:

Order allow,deny

Následně se zde může nacházet příkaz

Deny from all

Následovaný

Allow from 192.168.0.1

Popřípadě

Deny from 192.168.0.1

IP adresa bude samozřejmě rozdílná.

Příkaz Deny from 192.168.0.1 zakazuje přístup do adresáře dané IP adrese.

Příkaz Allow from 192.168.0.1 naopak přístup dané adrese povoluje. V kombinaci s Deny from all, který zakazuje přístup všem, pak 192.168.0.1 získá výjimku.

Pokud je v souboru, který se nachází v adresáři wp-admin nevidíte, zkuste .htaccess v nadřazeném adresáři.

Zazálohujte si celý obsah souboru .htaccess a následně z něj odmažte Order allow, deny a všechny Deny from a Allow from. Soubor uložte a zkuste zdali vše funguje jak má.

Upozornění: Pokud jste předtím nijak nesáhli do nastavení .htaccess ani jste neměnili nastavení některého z bezpečnostních pluginů pro WordPress a přeci vám byl omezený přístup, je možné, že máte ve WordPress malware, který se snaží vám zabránit v přístupu.

Nejde přístup k celému webu – přesměrování

Pokud celý web hlásí 403 tak možností může být více. Například v .htaccess je nastavené špatné přesměrování, které se vás přesměrovává na adresář kam nemáte v důsledku zabezpečené přístup. To můžete zjistit jednoduše. Zkuste zavolat administraci na přímo:

domena.tld/wp-admin/wp-login.php

Pokud se vše podařilo (za předpokladu, že je soubor wp-login.php nebyl z bezpečnostních důvodů přesunut), tak stačí pouze opravit přesměrování. Přihlaste se do administrace, běžte na nastavení trvalých odkazů a klikněte na uložit nastavení (není nutné nic měnit).

V případě, že přesměrování nezpůsobuje samotný WordPress máte více možností. Pokud víte, který z pluginů to dělá, připojte se přes FTP. V adresáři wp-content/plugins/ najděte adresář s jeho jménem a přejmenujte jej (stačí dát na začátek třeba 0). Tím se deaktivuje.

Nezabralo? Pak bude nejjednodušší uvést .htaccess do původního nastavení.

# 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 WordPress

Tím však riskujete, že se některé pluginy (hlavně přesměrování a cachovací) rozbijí. Ideální je tedy přepsat jen to co je jinak. V každém případě nezapomeňte na zálohu.

Nejde přístup k celému webu – problém hostingu

Většina webhostingů má implicitně zablokovaný přístup do účtu, pokud to není povoleno. Jinými slovy, když si u nich zřídíte službu a smažete původní index.php, tak se objeví zákaz přístupu 403 místo stránka nenalezena 404.

Teď si představte, že někdo něco na hostingu přehodí. Neúmyslně, aktualizace, chyba pracovníka, který si popletl ID, prostě možností je spousta. Takže vaše FTP ukazuje, že soubory na hostingu fyzicky jsou, ale server může vracet data z „jiného adresáře“. Tady nezbývá než se ujistit, že chyba není u vás. Což většinou znamená odstranit dočasně .htaccess, ujistit se že DNS směřují tam kam mají a vytvořit soubor třeba test.html (tedy nějaký, který neobsahuje skripty) a do něj vložit jednoduchý text. Pokud tento soubor zavoláte a přesto vidíte 403, nezbývá než napsat na zákaznickou podporu, vysvětlit jim, že nevidíte ani statický html soubor a zdali by zkontrolovali jestli vše směřuje tam kam má.

Nic dalšího většinou v ruce nemáte.

Autor Ginoza

Pracuji na zákaznické podpoře jednoho známého webhostingu.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *