Flyer.cz
Znalostní báze chyb, problémů a návodů pro WordPress
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.
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.
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.
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.