Autor Zpráva
shirley
Profil *
Ahoj,

mám web s články. Před zobrazením stránky kontroluji zda je správná url a zda článek existuje. Pokud článek již neexistuje, tak mám přesměrování:

header("HTTP/1.1 404 Not Found");
header("Location: http://www.example.com/404");
exit;

V .htaccess mám také

ErrorDocument 404 http://www.example.com/404

Ve Webmasters Tools se mi však ukazuje velké množství tzv. falešných chyb 404 (zde popis, ale nejsem z toho vůbec moudrá).

Může mi někdo polopaticky vysvětlit v čem je problém? Díky :o)
jirka2
Profil *
Ahoj,
není tam řádek s 'Location:' navíc?
Joker
Profil
shirley:
No a ta 404 stránka nastavuje hlavičku 404?

A tohle:
header("HTTP/1.1 404 Not Found");
header("Location: http://www.example.com/404");
není správně, už proto, že header location přepíše tu 404 hlavičku na 302.

Správně by asi bylo nastavit hlavičku 404 a pak include šablony chybové stránky.
Davex
Profil
shirley:
V .htaccess mám také
ErrorDocument 404 http://www.example.com/404
To není nastavení chybové stránky, ale přesměrování v případě, že se dokument nevyskytuje na serveru. Správně se chybová stránka nastavuje s kořenovou cestou (aby nedošlo k přesměrování) a měl by to být nějaký dokument nebo skript, který uživateli vysvětlí, že na této adrese není žádný obsah.

ErrorDocument 404 /404
Yuhů
Profil
Zkusím to ještě polopatičtěji: zruš to posílání hlaviček v php kódu (aspoň to vypadá jako php) a nech ten zápis v .htaccess. Snad moc neplácám, ale to mi přijde jako správné a uspokojivé řešení.
Str4wberry
Profil
Reakce na Yuhůa:
To by bylo u dynamického webu nejspíš neužitečné. Tam pravděpodobně na ErrorDocument nedojde, neboť o existenci článku může rozhodovat až PHP skript.

Optimální by tedy bylo, jak píše Joker, při neexistujícím článku poslat v PHP hlavičku 404 a vypsat nějakou informaci, že stránka neexistuje.
Yuhů
Profil
Str4wberry:
neboť o existenci článku může rozhodovat až PHP skript

aha, jasně, to mě nenapadlo. Takže polopatistická odpověď bude znít, že je potřeba odstranit ten řádek s location. Snažím se to stále zjednodušit pro původní tazatelku.

Vaše odpověď

Mohlo by se hodit

Zajímavé čtení:
Poptávání výměny odkazů je na této diskusi nežádoucí.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: