Moin,
ein php script liest den GET Inhalt aus und weist diesem entsprechende Inhaltsdateinen zu, die in einem Array vorgegeben sind, und zwar so.
$inhalt = array();
$inhalt['home'] = "contents/home.tpl";
$inhalt['home_home1'] = "inhalt/home_home1.tpl";
$inhalt['home_home2'] = "inhalt/home_home2.tpl";
$inhalt['home_home3'] = "inhalt/home_home3.tpl";
$inhalt['item2'] = "contents/item2.tpl";
inhalt['item2_sub1'] = "inhalt/item2_sub1.tpl";
inhalt['item2_sub2'] = "inhalt/item2_sub2.tpl";
...
gibt man jetzt z. b. als Adresse ein http://bla.test/index.php?page=home, dann wird das enstprechnde *.tpl eingelesen und die Seite entprechend zusammengestellt. Das funktioniert auch wunderbar.
Das einzige Problem ist nun daß, wenn man mit $_GET eine nicht exsistente *.tpl Datei aufruft (z.B. http://bla.test/index.php?page=home_sub4 ) eine PHP Fehlermeldung erscheint. Was ja auch in Ordnung ist.
Allerdings wäre es besser, wenn statt dessen ein 404er käme, da der Durchschnittssurfer mit der PHP Fehlermeldung kaum etwas wird anfangen können.
Was ich also machen müßte, wenn ich mich nicht irre, ist zu überprüfen, ob der mit $_GET aufgerufene Parameter im Array 'inhalt' angegeben wurde. Mein Ansatz wäre mittels foreach alle Werte im Array mit dem Wert von $_GET abzugleichen und in dem Moment wenn eine Übereinstimmung gefunden wird, die Schleife zu verlassen und die entsprechende Seite auszugeben.
Wenn alle Werte überprüft wurden, ohne eine Übereinstimmung zu finden dann eben mittels header-funktion eine 404er Fehlerseite aufrufen.
Das ist wohl _ein_ gangbarer Weg. Ich frage mich nur, ob es eine elegantere Möglichkeit gibt als diese?
viele Grüße
^da Powl