Muj prvni pokus s obsluhou "404 Not Found" dopadl nasledovne:
soubor .htaccess ve slozce /test/
ErrorDocument 404 /test/404.php
uvnitr souboru /test/404.php pak bylo neco ve stylu:
$request = $_SERVER['REQUEST_URI'];
if ($request == '/test/2004/')
{
include_once('log/2004.php');
}
Myslenka je doufam zrejma - umoznit pouzivat "virtualni" URL ve stylu "http://web.wz.cz/test/2004/" a vyslednou stranku pak generovat podle potreby dynamicky. (Uvedeny priklad je pouze zjednodusena ukazka a neslo o funkcnost, ale o prezentaci myslenky.)
Prohlizece s tim nemely problem, ale validator nebo link-checker se tvarili, jako ze takova stranka neexistuje. Zrejme proto, ze se jim vracel http kod 404.
Tak jsem to zkusil vylepsit a pokud to v souboru 404.php "dopadne dobre", tak posilam hlavicku:
header('HTTP/1.0 200 OK');
Na tohle uz zabraly i validatory a vse se zda byt v pohode...
Tak se chci zeptat - tech, kdo s tim maji zkusenosti - staci to takhle? Nebo je potreba odeslat jeste neco dalsiho pripadne provest jeste nejake dalsi akce?
Cilem je, aby se ono "virtualni" URL pro vsechny prohlizece, validatory a ruzne jine roboty tvarilo jako normalni web folder, ktery ma nastaveny nejaky default document, takze ho neni potreba uvadet.
Nebo místo include použij Header s HTTP kódem 301 a s Location:
U include zůstane URL s 404... To asi nechceš :-)
mod_rewrite je pekna hracka, ale je to "neco navic", co se vklada mezi zadani adresy do prohlizece a toho, co pak zpracuje server. zatim bych dal prednost vyresit to pres 404.php
jinak obecne - radeji zadna presmerovani a zadne mutace adresy. uplne postacuje vygenerovat odpoved typu "ano, ta stranka tady je, tady mas, mily prohlizeci, jeji obsah...".
a jak rikam - ta hlavicka s kodem 200 funguje... jenom by me zajimalo, jestli je to vse, co je potreba ke stesti.