Chtěl bych vědět, jak lze odněkud z PHP skriptu přesměrovat uživatele na chybovou stránku 404.
Nevím z jakého důvodu, ale tyhle dvě metody z dokumentace PHP mi nefungují:
header("Status: 404 Not Found");
header("HTTP/1.0 404 Not Found");
Přitom funkce header() jinak funguje normálně a nemám s ní potíže.
Kde je tedy chyba? Lze to případně přesměrovat i jinak?
Díky za odpovědi.
Hm, tak podle me by melo fungovat to co pises :
header("HTTP/1.0 404 Not Found");
... jestli to nefunguje tak cucham nekde podraz ;) ... ale urcite to muzes obejit (napadly me 2 cesty:
1)das header("Location: http://example.com/error404.php"); (proste to primo poslel na error page)
2)posles to na soubor ktery 100% neni na serveru :) header("Location: http://example.com/pItOmY_SoUbOr_KTeRy_Na.SeRvErU");
(to druhe je celkem prasarna, ale pokud nevis url error page (nebo se meni url) tak je to asi nejjednoussi :) )
)
V .htaccess mám nastavenou vlastní stránku s logováním chyb do databáze a chci danou chybu zalogovat, tzn. ty alternativní způsoby nefungují.
Ještě bych doplnil, že pokud na stejné místo zadám např. přesměrování s Location: na hlavní stránku, tak vše funguje. Ale pokud zadám header("HTTP/1.0 404 Not Found"); zobrazí se mi jen čistě bílá stránka a nic se nepřesměruje na moji chybovou stránku.
Vytvořil jsem si zkušební skript zkouska.php, do kterého jsem vložil jen:
<?php
header("HTTP/1.0 404 Not Found");
?>
Ale po spuštění skriptu se stejně nic nepřesměruje a stránka zůstane bílá. Odzkoušel jsem to i když jsem vypl nastavení vlastní chybové stránky v .htaccess.
protoze header nikam nic nepresmerovava. ta funkce jenom nastavi hlavicku a konec. tak to ma fungovat. ta hlavicka jenom rekne prohlizeci, ze nastala chyba 404 a konec. na presmerovani slouzi hlavicka location.
cili bud to pomoci location presmerujes, nebo posles 404 hlavicku a pak vypises normalne jakoukoliv stranku - i treba includem
co takhle zaslat chybový kód na stránku, na kterou přesměruješ?
header("Location: ./404.php", 404);