Dynamische Webseite - Aufbau
-
Hallo,
und zwar würd ich gerne mal eure Meinung zu folgendem hören.
Wenn ich eine Website erstell, hab ich folgende Struktur:
- eine index.php über die alles läuft.
d.h. Ich habe für einzelne Bereich wie Impressum, Produkte, usw. eigene php-dateien in denen nur der Text und eventuell noch divs oder tabellen stehen.
Wenn ich jetzt z.b. das Impressum öffnen will, ruft der link wieder die angezeigte index.php auf mit entsprechenden parametern die dann die entsprechende php datei (in dem fall: impressum.php) inkludiert.Ist das klug, gerade wenn man an Suchmaschinen denkt?
- eine andere Möglichkeit wäre ja z.b. direkt die einzelnen Seiten mit dem entsprechenden Link aufzurufen. Also bei klick auf impressum wird direkt die impressum.php aufgerufen in der dann der header und footer bereich inkludiert wird.
Ist das eine bessere Möglichkeit oder kommt beides auf selbe raus?
Ich fands bis jetzt eigentlich immer ganz schick wenn sozusagen alles über eine php Datei läuft, aber jetzt frag ich mich natürlich ob das der optimale Weg ist und ob das überhaupt so schick ist wie ich dachte
- man trifft aber auch andere Ansätze, bei den Links, z.B:
href="http://www.domain.tld/impressum/"
dabei liegt in jedem verzeichniss dann eine eigene index.php datei, die aufgerufen wird in dem fall mit dem inhalt von impressumAlso kurz zusammen gefasst, die Möglichkeiten:
(und was hat jede für Nachteile und Vorteile, bei SEO, bessere Aufbau, etc ?)Bin dankbar für jede Antwort.
Gruß,
Sergius
-
Kannst ja mal nach "mod_rewrite" googeln.
Es wird zwar von den meisten Suchmaschinen behauptet, das die auch mit dynamischen, parametrisierten Adressen zurechtkommen.
Allerdings kann man davon ausgehen, das statische Adressen meist besser indexiert werden.
-
Sergius schrieb:
- man trifft aber auch andere Ansätze, bei den Links, z.B:
href="http://www.domain.tld/impressum/"
dabei liegt in jedem verzeichniss dann eine eigene index.php datei, die aufgerufen wird in dem fall mit dem inhalt von impressumNein, vermutlich nicht. Zu mindestens 95% aller Fälle wird da mod_rewrite arbeiten und den Aufruf von /impressum/ in etwas wie impressum.php, impressum.aspx o.ä. umschreiben
Generell ist es imho der üblichere Weg, Header und Footer global zu deklarieren und für jede Rubrik (oder Rubrikgruppe, wie z.B. Eintragsformulare in Gästebüchern) eine eigene Datei zu haben. Die Abstraktion von Header und Footer wird i.d.R. von einer Template-Engine realisiert, ebenso wie die Trennung von Inhalt und Darstellung. Spätestens wenn du eine TE Benutzt, bringt dir dein Ansatz also kaum noch etwas, alles in eine einzige PHP-Datei zu quetschen, die die Aufrufe delegiert.
Bei dir ruft eine allgemeine Datei immer den geforderten speziellen Inhalt auf. Das ist aber m.E. eher dann sinnvoll, wenn dieser Inhalt z.B. aus einer Datenbank kommt. Liegt er hingegen als "flache" Datei vor, würde ich dazu raten, Header und Footer auszulagern und in jeder Datei einzubinden. Wenn deine Webseite aber nicht all zu groß ist, sollte das nicht so sehr ins Gewicht fallen
Ansonsten ist die Struktur, die du wählst, für Suchmaschinen relativ egal. Du schreibst dir einfach einen kleinen Regex, der aus www.test.de/impressum/ den Link www.test.de/index.php?page=impressum generiert. Aber pass auf, denn bei einer solchen parametrischen Eingabe ist dein Skript anfällig für Parametermanipulation! Stelle sicher, dass Aufrufe wie www.test.de/index.php?page=/passwd nicht funktionieren (Stichwort Whitelist).
-
Ich fands bis jetzt eigentlich immer ganz schick wenn sozusagen alles über eine php Datei läuft, aber jetzt frag ich mich natürlich ob das der optimale Weg ist und ob das überhaupt so schick ist wie ich dachte
Naja, das bläht ja unnütz deine Index.php auf.
Besser ist, wenn du die Index.php dann eine Impressum.php nachladen lässt.
-
árn[y]ék schrieb:
Sergius schrieb:
- man trifft aber auch andere Ansätze, bei den Links, z.B:
href="http://www.domain.tld/impressum/"
dabei liegt in jedem verzeichniss dann eine eigene index.php datei, die aufgerufen wird in dem fall mit dem inhalt von impressumNein, vermutlich nicht. Zu mindestens 95% aller Fälle wird da mod_rewrite arbeiten und den Aufruf von /impressum/ in etwas wie impressum.php, impressum.aspx o.ä. umschreiben
das habe ich mir schon vermuttet, oder bei diesem punkt ist dann klar
árn[y]ék schrieb:
Generell ist es imho der üblichere Weg, Header und Footer global zu deklarieren und für jede Rubrik (oder Rubrikgruppe, wie z.B. Eintragsformulare in Gästebüchern) eine eigene Datei zu haben. Die Abstraktion von Header und Footer wird i.d.R. von einer Template-Engine realisiert, ebenso wie die Trennung von Inhalt und Darstellung. Spätestens wenn du eine TE Benutzt, bringt dir dein Ansatz also kaum noch etwas, alles in eine einzige PHP-Datei zu quetschen, die die Aufrufe delegiert.
Bei dir ruft eine allgemeine Datei immer den geforderten speziellen Inhalt auf. Das ist aber m.E. eher dann sinnvoll, wenn dieser Inhalt z.B. aus einer Datenbank kommt. Liegt er hingegen als "flache" Datei vor, würde ich dazu raten, Header und Footer auszulagern und in jeder Datei einzubinden. Wenn deine Webseite aber nicht all zu groß ist, sollte das nicht so sehr ins Gewicht fallen
was ist TE ?
hm, also das kann ich mir im moment vorstellen, schaue mal:
a) wenn man die menüpunkte so aufruft:
<a href="page/impressum.php">Impressum</a>
dann muss man doch bei jeder dieser unterseite eben am anfang und ende extra includes schreiben (zwar nciht viel aufwand, aber trotzdem), z.b.// page/impressum.php include('header.php'); content include('footer');
b) wenn man die menüpunkte so macht
<a href="index.php?page=impressum">Impressum</a>
und die index datei so aufbaut// index.php {header} include('menu.php'); include('page/'.$page.'.php'); {footer}
dann kann man doch alle unterseiten ganz unbesorgt ohne header und footer machen nur mit content, bei > 3-4 unterseiten erspart das die arbeit,
oder übersehe ich da was ?árn[y]ék schrieb:
Ansonsten ist die Struktur, die du wählst, für Suchmaschinen relativ egal. Du schreibst dir einfach einen kleinen Regex, der aus www.test.de/impressum/ den Link www.test.de/index.php?page=impressum generiert. Aber pass auf, denn bei einer solchen parametrischen Eingabe ist dein Skript anfällig für Parametermanipulation! Stelle sicher, dass Aufrufe wie www.test.de/index.php?page=/passwd nicht funktionieren (Stichwort Whitelist).
das ist auch klar
-
Sergius schrieb:
was ist TE ?
Template Engine ... Keine offizielle Abkürzung, habe ich nur im Schreibfluss so da hin geschrieben
hm, also das kann ich mir im moment vorstellen, schaue mal:
Sergius schrieb:
dann kann man doch alle unterseiten ganz unbesorgt ohne header und footer machen nur mit content, bei > 3-4 unterseiten erspart das die arbeit,
oder übersehe ich da was ?Nein, du übersiehst nichts. Aber es ist afaik einfach bei flachen Dateien weniger üblich. Sicher gibt es da wieder Leute, die das eine verfechten und welche, die das andere preisen. Ein CMS wie Joomla! z.B. arbeitet genau so, es bezieht seine Daten (nicht die Anzeigelogik!) aber aus einer Datenbank.