Re: stránka 404 v PHP

From: Jan Fiser <jan.fiser (zavinac)>
Date: Sun, 7 Jan 2007 16:40:36 +0100
Díky moc, funguje to :-)

Jan Fišer

On 1/7/07, Jiří Hrazdil <konference (zavinac) normy.biz> wrote:
> 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)
>
>         hrazda
Received on 07. 01. 2007, 16:40 CET

This archive was generated by hypermail 2.2.0 : 07. 01. 2007, 16:40 CET