Hallo und guten Abend,
Ich baue meine Seite immer mit einem Template System zusammen, wobei die URLs immer so aussehen:
Templatesystem oder CMS oder etwas Selbstgebautes?
Wie sieht denn die Seitenorganisation aus? Werden die Strukturen und und die Ordnung in einer Datenbank festgelegt, oder machst Du das ganz klassisch mit Verzeichnisstrukturen.
Ich frage das deshalb, weil es mit Verzeichnisebenen am leichtesten zu verstehen wäre.
Grundlegend sollte man beachten, dass eine Ressource unter der angegebenen URL/URi (extra-Diskussion zur Nomenklatur folgt bestimmt gleich *g*) zu finden sein muss, wenn es Sinn haben soll :-)
Das bedeutet aber auch, dass das System für alle internen Links auch dieselbe URL/Uri benutzen sollte, denn die Suchmaschinen sollen ja gerade diese "schöne URL" abspeichern und indizieren.
Die Seiten könnten also folgendermaßen verwaltet werden (vereinfacht):
id | Titel der Seite | xpath für Link | Modulzugehörigkeit | in-Menu-Flag | gültig bis 1 | Home - example.com | / | general | nein | 2015-06-13 2 | Home - example.com | / | general | ja | 3 | Gästebuch example.com | /guestbook/ | guestbook | ja | 4 | Gästebuch Verwaltung | /guestbook/admin/ | guestbook | lookup |
usw.
Über xpath und gültig bis besteht ein Unique Index
Auf id liegt ein autoincrement (unique) Index
So könnte Dein System die Links mit Hilfe des xpath aufbauen, und beim Request in der Tabelle nachschlagen, welche ID gerade dazu gehört.
Für den Aufbaue einer Navigation werden nur diejenigen Einträge berücksichtigt, bei denen das Menu-Flag auf ja steht, oder bei angemeldetem User und "lookup", ein Rechteeintrag in in einer Rechtetabelle vorhanden ist.
Soweit nur als einfaches Denkbeispiel
Nun kannst Du dir ein Rewrite fertig machen, dass alle Anfragen auf dein Script mit der Datenbankabfrage umlenkt. Das ist einfach und Du musst es nie ändern. Die Anpassungen finden in der Datenbank statt.
Grüße
TS