Jak opravit chybu 404 ve WordPressu

Fungování WordPressu je věštinou bezproblémové, však, vyskytnou se problémy, jenž vám mohou znepříjemnit život. A přesně taková je chyba 404.

Pokud se pohybujete především v administraci WordPressu, může se stát, že si problému nevšimnete. Proto je lepší, preventivně nainstalovat plugin, jenž bude 404 dotazy logovat a vy tak budete mít možnost rychle zareagovat. Alternativou je aktivace Google Search Console, která je zdarma a kromě toho, že do ní můžete vložit sitemap soubor, upozorní vás na zvýšený výskyt chyb 404.

Podstránky webu zobrazují chybu 404

Poměrně běžný problém, kdy se vám načítá hlavní strana webu, ale nemůžete se dostat na podstránky.

Poškozený htaccess soubor

Stává se to občas a dochází k tomu, pokud zapíšete do souboru nekorektní pravidlo, nebo to mohou způsobit odinstalované pluginy, jenž vložily nějaký zápis do souboru a ten bez pluginu nefunguje.

Řešením je opravit soubor. Zde je výchozí zápis v souboru htaccess pro WordPress:

# 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

Na serveru není zapnutý rewrite mode

Toto se nestává tak často, ale již jsem na to několikrát narazil. Aby Apache byl schopen zpracovat takzvané „pěkné“ url, musí mít aktivní mod rewrite. Zjistíte z php ini a pak požádáte vašeho správce serveru o aktivaci.

Znovu obnovení rewrite rules pro „pěkné“ url

WordPress si ukládá pravidla pro vytváření url a v případě, že nainstalujete/odinstalujete plugin a najednou vám nefungují podstránky, stačí znovu vygenerovat tato pravidla.

Jděte v adminsitraci do Nastavení > Trvalé odkazy a tam jenklikněte na tlačítko – Uložit. WordPress si znovu projde všechny rewrite rules a uloží si je.

Nekorektní definice custom post type

Tento problém je trochu ošemetnější a vyžaduje trochu větší přehled o tom, co máte ve WordPressu definováno.

Jeden z nejznámějších custom post typů je product z WooCommerce. Je definován pluginem a pokud by došlo k nějakému problému, budou vám fungovat stránky, články, ale ne produkty. Díky tomu jste poměrně rychle schopni detekovat problém. Když nainstalujete plugin, jenž custom post type vytváří, budete jej buď muset opravit, nebo deaktivovat.

Problém nastavá například, pokud máte na webu nějakou stránku, která se jmenuje stejně jako custom post type, nebo má vaše definice název stejný, jako jeden z chráněných jmen. Jejich seznam najdete v dokumentaci https://codex.wordpress.org/Reserved_Terms.

Neexistence cílové stránky a chyba 404

Tento problém vzniká, pokud stránku přejmenujete, odstraníte, nebo jste obsah migrovali z jiného systému na WordPress. Cílová url pak neexistuje a WordPress vám správně zobrazí stránku s 404 chybou. Řešením v tomto případě je 301 přesměrování. O tom, co je 301 přesměrování psal již před drahnou dobou Pavel Ungr – https://blog.bloxxter.cz/trvale-presmerovani-301/ – článek stále platí.

Vy máte ve WordPressu možnost přidat pravidlo pro redirect do htaccess, nebo použít některý z pluginů. Já používám Redirection, protože umí oboje – loguje 404 chyby a je v něm možné vytvářet 301 pravidla a to včetně regulárních výrazů.

WordPress však obsahuje jednu zajímavou funkci a tou je, že si ukládá poslední změnu url do custom fieldu, takže pokud uděláte změnu url článku/stránky, měl by u staršího tvaru odkazu provést 301 přesměrování. Nedrží ale celou historii, pouze poslední změnu.

Rychlá detekce problému

Pokud nastane problém s 404 chybou, doporučuji v Nastavení > Trvalé odkazy, změnit nastavení na Základní a pokud se vám v tu chvíli začnou podstránky zobrazovat, hledejte problém v htaccessu, přeuložte trvalé odkazy, nebo zkontrolujte nastavení php – mod rewrite.

Máte problémy s vaším WordPress webem? Kontaktuje nás na Toret.cz a my vám pomůžeme.

About The Author

Zajímá mne Wordpress, responsivní šablony a zkrátka vše kolem tohoto skvělého redakčního systému.

Související články

Přidejte komentář

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