Jan Fiser wrote: > Dobrý den, > > mám udělanou stránku 404 (no udělanou - upravenou, pochází z > http://alistapart.com/articles/perfect404/). > V současné době jsem předělal strukturu webu, některé stránky zmizely, > nebo přesněji mají jinou adresu. > Myslel jsem, že je budu přesměrovávat pomocí htaccess, ale nemám v něm > povoleno přesměrovávání a pomocí rewrite to nepůjde, nové adresy jsou > úplně jiné, než staré. > Vymyslel jsem následující: > ********* > někdo chce starou stránku, ta není, dostane se tedy na 404, ta se > podívá, jakouže stránku chtěl, pokud půjde o jednu ze známých stránek > (dejme tomu archiv2002.html, archiv2003.html), vrátí mu 301 na > novyarchiv2002, novyarchiv2003 a ukončí zpracování skriptu v 404. > Pokud nebude stránka v seznamu, pojede stávající skript pro 404. > ********* > Moje (ne)znalost PHP na to ale nestačí. Přiznám se, že jsem schopen > mírně upravit existující skript, ale napsat nový nikoliv. > Navrhnul jsem si tohle: > > ************* > switch($_SERVER["REQUEST_URI"]): > case "/archiv2002.html"; > > $novastranka="view.php?cisloclanku=2006120004&nazev=novyarchiv2002"; > presunuto(); > $presunuto=TRUE; > break; > case "archiv2003.html"; > > $novastranka="view.php?cisloclanku=2006120015&nazev=novyarchiv2002"; > presunuto(); > $presunuto=TRUE; > break; > endswitch; > > function presunuto() > { > header("HTTP/1.1 301 Moved Permanently"); > header("Location: http://denicek.zestoda.net/".$novastranka); > } > > // a tady jsem měl v úmyslu použít proměnnou $presunuto pro ukončení > skriptu, ale to už jsem taky nezvládl > ************* funkci presunuto() uprav tak, aby po těch dvou Header()ech bylo Die(). Tím zaručíš, že po provedení přesměrování se 404 skript ukončí. (A pak navíc bude možno vymazat i řádek $presunuto = TRUE. Btw tento skript se spoléhá na to, že proměnná $novastranka je dostupná i v kontextu funkce. To není úplně ideální, takže bych doporučil upravit každou větev toho switche na: case "/archiv2002.html"; presunuto("view.php?cisloclanku=2006120004&nazev=novyarchiv2002"); break; a změnit hlavičku funkce presunuto na function presunuto($novastranka) hrazdaReceived on 07. 01. 2007, 16:15 CET
This archive was generated by hypermail 2.2.0 : 07. 01. 2007, 16:15 CET