Jörg Reinholz: Eigenen einfachen Permalink erstellen?

Beitrag lesen

Moin!

Nun habe ich aber eine eigene Seite geschrieben, in der Benutzer Anzeigen erstellen können.

Man klickt also auf einen Link "www.example.de/anzeige.php?id=20" und kommt dann auf die entsprechende Anzeige.

Die Anzeige enthält dabei immer einen Betreff, den die Benutzer eingeben "müssen" -diesen würde ich gerne als Permalink verwenden.

Du hast ein konzeptionelles Problem.

1. Der Permalink ist einer, unter dem die Webseite dauerhaft - also auch nach einer Archivierung oder einer Verschiebung aus anderen Gründen erreichbar ist.

Beispiel:

Aktelle Adresse:

  • http://example.com/aktuelles/foo_ist_nicht_bar.php

Adresse im Archiv:

  • http://example.com/archiv/2015/5/foo_ist_nicht_bar.php

Permalink:

  • www.example.com/nachrichten.php?id=20

Oder:

Adresse nach falscher Kategorisierung durch den Kunde:

  • http://example.com/shop/Elektronik/toller_staubsauger.html

Adresse nach administrativem Verschieben in die richtige oder bessere Kategorie:

  • http://example.com/shop/Haushalt/toller_staubsauger.html

Permalink:

  • www.example.com/Produkte/0815

Überlege also genau, ob der "Permalink" überhaupt einen Sinn hat und ob Du diesen nicht nur des "Permalinks" (der "Mode", des "Buzzwortes") wegen haben willst.

2. Der Permalink muss auch eindeutig sein. Wie soll das gehen, wenn einzig der Benutzer über den Betreff, nach Deiner Beschreibung also über die URL bestimmt? Was Du zu Deinen Bemühungen zusätzlich brauchst ist also eine Möglichkeit, eindeutige URLS zu erzeugen: Mindestens dann, wenn der Betreff zweimal gleich angegeben wird. Was ja mit einiger Wahrscheinlichkeit eintreten wird.

Oft wird also eine Nummer (folgend: "ID") angehangen:

  • http://example.com/shop/Haushalt/toller_staubsauger-1.html
  • http://example.com/shop/Haushalt/toller_staubsauger-2.html
  • http://example.com/shop/Haushalt/toller_staubsauger-1234.html

Manchmal auch gleich die ID:

  • http://example.com/shop/Haushalt/toller_staubsauger-815.html

Der Trick ist, dass anhand von Techniken wie mod_rewite alles auf ein Skript umgeleitet wird und entweder vom Skript oder schon von mod_rewrite hierbei die ID mittels eine regulären Ausdrucks ermittelt wird. Die Inhalte werden dann aus der Datenbank erzeugt.

De facto ist es dann so, dass es beim Erzeugen der Seite selbst (zum Zeitpunkt des Abrufes) völlig egal ist, ob

  1. http://example.com/shop/Haushalt/toller_staubsauger-815.html
  2. http://example.com/shop/foo-815.html
  3. http://example.com/shop/815.html

aufgerufen wurde. Die "überflüssigen" Informationen werden nämlich schlicht verworfen und durch solche aus der Datenbank ersetzt: Man macht ("intern" - also ohne Weiterleitung) mit mod_rewirte (oder einer ähnlichen Technik) daraus etwas wie:

http://example.com/shop.php?item=815

Was übrig bleibt ist demnach genau der "Permalink", so dass dann gar nichts zu tun wäre - außer den "Permalink" für Suchmaschinen anzubieten. Freilich kann man auch aus der ID die "neue" URL bauen (in dem man sich die Daten (hier: Kategorie, Produktname) aus der Datenbank holt (damit der Staubsauger nicht nach einer willkürlichen Angabe scheinbar in der Katergorie "Sexspielzeug" auftaucht und von Dildos "umgeben" ist) und dann den Benutzer zur gewünschten URL schickt - das belastet aber nur den Server und bringt sonst "gar nichts".

ToDo:

Denke jetzt nochmals über das Konzept nach.

Jörg Reinholz