Hallo und vielen Dank für den tolen Support überhaupt hier im Forum.
Ich möchte gerne den nächsten Abschnitt meiner Arbeit reflektieren. Wie der Titel schon vermuten lässt geht es hier um 'saubere' URLs.
Bevor ich meinen Ansatz vorstelle möchte ich gerne wissen, ob sich dafür mittlerweile auch ein richtiger Name etabliert hat. Also neben 'saubere url' oder 'lesbare url'. Das würde mir sicher helfen einfach noch mal genauer nachzulesen.
Mein Konzept der URLs weicht vom Klassischen Aufbau ab.
Oft gesehen habe ich Ansätze wie: domain.de/Key/Value/Key/Value/Key/Value.html
Ich verfolge jedoch etwas in dieser Art: domain.de/Key-Value/Key-Value/Key-Value.html
Ich denke zwar, dass diese Art des Aufbaus den meisten Leuten egal ist, aber trotzdem ist es schon etwas schwerer lesbar als die klassische Variante.
Wie auch immer. Der Grund ist, dass meine Anwendung die URL in ein Array mit Keys und Values zerlegt. Wichtig an dieser Stelle ist mir, dass auch Keys existieren können, die keine Value besitzen. Die URL sieht dann so aus: domain.de/Key/Key/Key-Value/Key-Value/Key.html
Es würde also ohne Rewrite genau diesem Muster entsprechen: domain.de?key=&key=&key=value&key=
Ich kann bei dieser Methode also unterscheiden, ob es sich bei den Daten in der URL um Keys oder Values handelt.
Nun bin ich in einem Teil der Verwaltung meines Systems in der Lage bestimmte Keys an konkrete Funktionen() des Systems zu binden.
Daher würde zum Beispiel domain.de/page-willkommen/forum-13/thread-74.html nicht nur ein Array erzeugen sondern gleichzeitig Funktionen ausführen, die per Verwaltung an 'page', 'forum' und 'thread' gebunden sind. Und trotzdem wären die Daten och als Array für andere oder die selben Funktionen verfügbar.
Das System merkt also anhand der URL und den hinterlegten Funktionen, was es zutun hat.
Bis hierher würde auch alles mit dem klassischen Style domain.de/key/value/key/value.html funktionieren.
Jetzt möchte ich aber das `page-` vor willkommen loswerden.
Daher möchte ich, dass die Funktion, welche meine Seiten lädt auch ohne 'page-' und nur durch 'willkommen' ausgelöst wird. Das erreiche ich, indem mein System zu jedem Key, der in der URL gefunden wird und aber keine Value aufweist automatisch eine zugehörige Funktion sucht. Wird diese Funktion nicht gefunden oder wurde dieser Key nicht als Action registriert, wird automatisch eine Standardfunktion aufgerufen. Dieser wird die unbekannte Aktion 'Willkommen' als Parameter übergeben. Diese Standardfunktion kann von Extensions überschrieben werden. In diesem Fall von meiner Seitenverwaltung. Nun wird also ‚willkommen’ meiner Seitenverwaltung übergeben. Diese lädt die Seite willkommen oder wahlweise auch eine 404 Seite. Die Standardaction lädt übrigens immer eine 404 Seite.
Beispiele:
Der Grund, warum ich alles so dynamisch gestalte und nicht gleich in der Rewrite-Regel festlege ist, das ich das System für viele verschiedene Projekte einsetze. Nicht jedes Projekt braucht Seiten bzw. hat an dieser Stelle evtl. was anderes eingebaut.
Ich möchte gerne den nächsten Abschnitt meiner Arbeit reflektieren. Wie der Titel schon vermuten lässt geht es hier um 'saubere' URLs.
Bevor ich meinen Ansatz vorstelle möchte ich gerne wissen, ob sich dafür mittlerweile auch ein richtiger Name etabliert hat. Also neben 'saubere url' oder 'lesbare url'. Das würde mir sicher helfen einfach noch mal genauer nachzulesen.
Mein Konzept der URLs weicht vom Klassischen Aufbau ab.
Oft gesehen habe ich Ansätze wie: domain.de/Key/Value/Key/Value/Key/Value.html
Ich verfolge jedoch etwas in dieser Art: domain.de/Key-Value/Key-Value/Key-Value.html
Ich denke zwar, dass diese Art des Aufbaus den meisten Leuten egal ist, aber trotzdem ist es schon etwas schwerer lesbar als die klassische Variante.
Wie auch immer. Der Grund ist, dass meine Anwendung die URL in ein Array mit Keys und Values zerlegt. Wichtig an dieser Stelle ist mir, dass auch Keys existieren können, die keine Value besitzen. Die URL sieht dann so aus: domain.de/Key/Key/Key-Value/Key-Value/Key.html
Es würde also ohne Rewrite genau diesem Muster entsprechen: domain.de?key=&key=&key=value&key=
Ich kann bei dieser Methode also unterscheiden, ob es sich bei den Daten in der URL um Keys oder Values handelt.
Nun bin ich in einem Teil der Verwaltung meines Systems in der Lage bestimmte Keys an konkrete Funktionen() des Systems zu binden.
Daher würde zum Beispiel domain.de/page-willkommen/forum-13/thread-74.html nicht nur ein Array erzeugen sondern gleichzeitig Funktionen ausführen, die per Verwaltung an 'page', 'forum' und 'thread' gebunden sind. Und trotzdem wären die Daten och als Array für andere oder die selben Funktionen verfügbar.
Das System merkt also anhand der URL und den hinterlegten Funktionen, was es zutun hat.
Bis hierher würde auch alles mit dem klassischen Style domain.de/key/value/key/value.html funktionieren.
Jetzt möchte ich aber das `page-` vor willkommen loswerden.
Daher möchte ich, dass die Funktion, welche meine Seiten lädt auch ohne 'page-' und nur durch 'willkommen' ausgelöst wird. Das erreiche ich, indem mein System zu jedem Key, der in der URL gefunden wird und aber keine Value aufweist automatisch eine zugehörige Funktion sucht. Wird diese Funktion nicht gefunden oder wurde dieser Key nicht als Action registriert, wird automatisch eine Standardfunktion aufgerufen. Dieser wird die unbekannte Aktion 'Willkommen' als Parameter übergeben. Diese Standardfunktion kann von Extensions überschrieben werden. In diesem Fall von meiner Seitenverwaltung. Nun wird also ‚willkommen’ meiner Seitenverwaltung übergeben. Diese lädt die Seite willkommen oder wahlweise auch eine 404 Seite. Die Standardaction lädt übrigens immer eine 404 Seite.
Beispiele:
Code:
domain.de/Willkommen.html -> lädt die Seite Willommen (Obwohl willkommen keine Action ist) domain.de/page-willkommen.html -> lädt die Seite Willkommen domain.de/Willkommen/Forum-13.html -> lädt die Seite Willkommen und fügt das Forum mit der id 13 (oder auch einem Namen) zum Inhalt der Seite hinzu domain.de/Forum-13/Willkommen.html -> lädt die Seite Willkommen und fügt das Forum mit der id 13 (oder auch einem Namen) zum Inhalt der Seite hinzu (erzeugt das Gleiche wie das Beispiel vorher) domain.de/sitemap.html -> lädt eine Sitemap für Suchmaschinen mit einer Funktion, die an sitemap gebunden ist domain.de/robots.txt -> Führt eine Funktion im System aus, die eine robots.txt erzeugt domain.de/printarticle-15.html -> erzeugt eine Druckansicht für den Artikel mit der id 15
Kommentar