ErrorDocument 404

nastavení chybové stránky

Vytvoření chybové stránky přes .htaccess

Chybová stránka s kódem 404 je taková stránka, která se uživateli zobrazí tehdy, když se dostane na stránku, která na serveru neexistuje. Pokud si nenastavíte chybovou stránku, dostane uživatel pouze obecné chybové hlášení z hostingu.

Vytvoření chybové stránky přes .htaccess

Do souboru .htaccess napište řádek:

ErrorDocument 404 /chybovka.html

Pak je ještě potřeba vytvořit stránku chybovka.html (samozřejmě se může jmenovat jinak). Pokud adresa chybové stránky začíná lomítkem, jako v tomto příkladu, tak soubor chybovka.html nakopírujte do kořene webu. Kořen webu je to první lomítko za doménovým jménem (třeba v případě jakpsatweb.cz/ by soubor /chybovka.html odpovídal adrese jakpsatweb.cz/chybovka.html).

Pak je potřeba soubor .htaccess i tu chybovou stránku nakopírovat na správné místo.

Jestli to funguje, poznáte zadáním nějaké nesmyslné adresy. V adresním řádku zůstane stará chybná adresa. Co se přitom stane:

  1. uživatel vidí v adresním řádku stále tu špatnou adresu, kterou zadal
  2. a jako obsah vidí obsah stránky chybovka.html
  3. server (nebo robot vyhledávače) přitom stále dostává odpověď 404 nenalezeno, takže ví, že tam nic není (a například robot vyhledávače si obsah nezaindexuje)

Jako adresu není možno použít relativní cestu, musí začínat lomítkem!

Druhá možnost je nastavit si jako error dokument nějakou jinou adresu s http nebo https na začátku.

ErrorDocument 404 https://example.com/chybovka.html

Musíte pak ale počítat s tím, že v takovém případě uživatel vidí sice obsah chybové stránky, ale vidí ji také v řádku adresy v prohlížeči. Takže nevidí adresu, která byla špatně. Proto to doporučuji moc nepoužívat.

Třetí možnost je namísto adresy souboru zadat za ErrorDocument textové hlášení v uvozovkách:

ErrorDocument 404 "Stránka se nenašla. Tramtadáda cililink a nějaká moudra."

Tuto třetí textovou možnost používám, když ErrorDocument ladím a chci vědět, jestli to funguje aspoň nějak.

Kam to napsat? Do .htaccess

Instrukce pro ErrorDocument se píšou do souboru .htaccess.

Pokud nevíte, co to je, přečtěte si můj návod na soubor .htaccess.

Soubor .htaccess je na serveru povolený docela často, na většině webových serverů už je dneska Linux a sever Apache. A právě v souboru .htaccess se dá chybová stránka nastavit. Pokud nevíte, jestli můžete soubor .htaccess používat, tak to prostě zkuste.

Pokud soubor .htaccess ještě nemáte, tak si ho vytvořte. Musí se jmenovat přesně ".htaccess". Přitom dejte pozor, abyste si nepřepsali nějaký starý .htaccess, který už dělá něco jiného.

Pokud to nefunguje, bude to většinou tím, že použití souboru .htaccess není na serveru povoleno. V tom případě můžete zkusit přemluvit správce, aby .htaccess povolil (povoluje se to v httpd.conf změnou hodnoty u AllowOverride). Nebo by správce alespoň to ErrorDocument mohl napsat rovnou do konfiguráku http serveru (nejčastěji soubor httpd.conf). Když všechno selže, můžete zkusit vytvořit stránku missing.html a poslat ji do rootu webu. Některé servery mají totiž nastaveno, že se chybovka 404 jmenuje missing.html (většina verzí Apache to má ale zakomentované).

Ladění chyb

Pokud se instrukce do .htaccess napíše špatně, dokáže to zbořit celý server, takže vrací Internal Server Error. Většinou při ladění chyb nestačí přepsat a uložit .htaccess. Abych měl jistotu, že server pracuje s aktuální verzí .htaccess, po každém pokusu server restartuji.

Proč dělat chybovou stránku?

Nastavení vlastní chybové stránky má dvě výhody:

  1. můžete tuhle stránku převést do své podoby. Přidat logo a napsat nějaké srozumitelné hlášení.
  2. můžete si na takovou stránku vložit počitadlo (Toplist, Analytics), ze kterého poznáte, že uživatelé často na chybovou stránku chodí.

Kdy uživatelé chodí na chybové stránky? Nejčastěji když někdo vytvoří chybný odkaz. Pomocí počitadla se tak můžete dozvědět, že máte nějaký problém, který tak můžete opravit.

Poznámky

Jako obsah chybové stránky se nemusí vracet jenom html stránka. Může se třeba poslat obrázek. Když například e-shop nemá obrázek k výrobku, ale šablona stránky počítá s tím, že výrobek bude mít obrázek, dá se napsat error dokument tak, aby poslal zástupný obrázek. I když má návratový kód 404, použije se ve stránce správně.

ErrorDocument 404 /img/zastupny-obrazek.jpg

Na serveru IIS

Postup nastavení chybové stránky na serveru IIS na Windowsech:
Ovládací panely - Nástroje pro správu - Internetová informační služba. Zde nalezněte váš webový server (vlevo ve stromu IIS) a klepněte na něj pravým tlačítkem. Z popup menu vyberte Vlastnosti a pak záložku Vlastní chyby. No a všechny chyby máte jako na dlani a pak už není problém popsat cesty :-)

Pozor na moc malé stránky

Dbejte na to, aby byla poskytnutá chybová stránka veliká alespoň 512 bajtů. Jinak ji Internet Explorer nebude umět zobrazit. Domnívá se totiž pak, že jde o standardní odpověď serveru (bývá malá) a věří si, že dokáže odpovědět uživateli lépe svým vlastním zabudovaným hlášením.

 

Publikováno 15. března 2004, později upraveno, aktualizace 4. května 2019

 

Reklama

www.webhosting-c4.cz, extra rychlý SSD webhosting s doménou v ceně
o tvorbě, údržbě a zlepšování internetových stránek

Návody HTML CSS JavaScript Články Ostatní

Encyklopedie FrontPage Reklama PHP Server

Jak psát web píše Yuhů, Dušan Janovský. Kontakt.