Wie entstehen suchmaschinenfreundliche Links? Teil 2 von 2
Im ersten Teil von "Wie entstehen suchmaschinenfreundliche Links" haben wir bereits einen kleinen Einblick dessen erhalten, wie solche SEO-Links zustande kommen. Wir haben uns einfach damit beholfen einen Indikator mit in die URL zu nehmen, welcher auf die jeweilige News-ID hinweist.
Nun fragt man sich zurecht, was denn ist wenn man das nicht dabei haben möchte, sondern lediglich den Link-Alias. Im Grunde ist das auch nicht wesentlich schwerer, nur etwas komplexer. Wir benötigen auch hier wieder mehrere Komponenten
- mod_rewrite
- PHP
- Datenbank
Dank phpbuddy.eu konnte ich mir damals eine einigermaßen gute Vorstellung davon machen, wie SEO-freundliche URLs mittels Datenbank zustande kommen. Dieses Wissen möchte ich auch mit Euch teilen.
Gedanken bevor es losgeht - Das Grundkonzept von Suchmaschinenfreundlichen URLs
Wenn man sich einmal ins Gedächtnis ruft, wie z. B. Joomla als CMS System aufgebaut ist, stellt man fest dass der Aufbau wie bei jedem anderen CMS auch relativ gleich ist. In der Datenbank wird zunächst der Content an sich gespeichert. Der Content wird intern anhand einer eindeutigen ID referenziert. In modernen CMS-Systemen kann man auch einen Alias eingeben. Anhand diesem Alias kann mittels einer übergebenen URL anhand einer Datenbankabfrage der Artikel ermittelt werden.
Soviel zur Theorie, wie kann das nun in der Praxis aussehen? Das will ich anhand einer einfachen Struktur darlegen, die über 2 Tabellen läuft. Eine ist hier für die Navigation, die andere für den Inhalt zuständig. Wir gehen davon aus, dass der index.php der Parameter "Artikel" übergeben wird. Anhand diesem Parameters soll nun der Artikel aus der Datenbank geladen werden.
Die Anweisungen für .htaccess
Diesmal möchte ich etwas vorgreifen und die .htaccess zuerst darlegen, damit der spätere Teil vielleicht etwas klarer wird, was hier eigentlich passiert.
Eine einfache .htaccess-Abfrage könnte z. B. so aussehen:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?artikel=$1 [L,NC]Diese .htaccess Anweisung sieht auch hier wieder wesentlich komplizierter aus, als sie eigentlich ist. Gehen wir das mal im Detail durch. Die erste Zeile dürfte mittlerweile bekannt sein. Wir starten hier unsere Rewrite-Maschine von unserem Server. In den nächsten beiden Zeilen geben wir an, dass sich die Regeln auf Dateinamen und Ordner beziehen.
In der letzten Zeile nehmen wir diese URL her und übergeben Sie als $1 an den Parameter "artikel". Die nächsten 3 Anweisungen sind zusätzliche Steueranweisungen. Der Wert "L" (Last) gibt an, das nach dieser Regel keine Regel mehr angewandt werden soll. Dank dem NC-Parameter ist es nun auch egal, ob die übergebene URL groß- oder kleingeschrieben - Der Server nimmt alles entgegen und leitet es brav weiter.
Die Struktur der mySQL-Datenbanken
Wie bereits erwähnt legen wir uns in unserem Datenbanksystem zwei Datenbanken an. Diese Datenbanken werden dann alle nötigen Informationen enthalten um uns zu unserem Ziel der suchmaschinenfreundlichen Links zu geleiten. Diese Datenbanken sehen in einer vereinfachten Variante folgendermaßen aus:
Menü-Tabelle:
ID - anhand dieser ID soll man später den Menüeintrag genau bestimmen können
Alias - Unsere SEO-URL wird hier eingetragen, ist damit der angezeigte Link (nicht der Linktext)
Link Titel - Dies ist der Text der als Link ausgegeben soll
Content-Tabelle:
ID - damit der Artikel eindeutig identifiziert werden kann.
Alias - Dieses Feld muss exakt mit dem aus dem Menü übereinstimmen, da es dann sehr schwer wird den Artikel zuzuordnen.
Content - Der eigentliche Inhalt des Artikels
Wie gesagt, dies soll nur eine stark vereinfachte Variante darstellen. Es fehlen noch Sachen wie Meta-Informationen, zusätzliche Felder usw.
Anforderungen an PHP - Was wird benötigt?
Gehen wir einen Schritt weiter und überlegen uns, wie jetzt eine Navigation zustande kommen würde. Ich möchte das jetzt nicht als Quellcode darlegen, das würde dann erst recht verunsichert. Interessierte können aber gerne phpbuddy.eu besuchen und sich dort die Quelldateien downloaden. Desweiteren brauchen wir natürlich erstmal eine Funktion die zur Datenbank connected, sowie eine Prozedur welche uns die Inhalte des Artikels ausgibt. 3 Sachen auf einmal, aber alle relativ schnell abgehakt.
Die Funktionen bis zu den SEO-URLs in der Theorie
Alle nachfolgenden Funktionen könnte man theoretisch in eine Datei packen, jedoch ist es geschickter dies auf mehrere Dateien (mind. 2) zu verteilen. In diesem Fall in die Template-Datei und in eine Funktions-Datei. Die Funktionsdatei wird nach Fertigstellung im Template inkludiert.
Als erste Amtshandlung müssen wir eine Verbindung zur Datenbank aufbauen. Im Moment soll es egal sein, ob wir mysql oder mysqli benutzen, also die objektorientierte Variante. Es geht lediglich darum, eine Abfrage zu generieren, welche uns alle eingetragenen URLs samt deren Text-links ausgibt. Das Ziel ist eine kleine Navigation mit Suchmaschinenfreundlichen Links.
Die Funktion die den eigentlichen Content aufruft hat hier schon einiges mehr zu erledigen. Wir übernehmen zunächst die übergebene URL und teilen diese in Ihre Bestandteile auf.Von Interesse ist der Teil vor dem ".html". Diesen Teil vergleiche wir mit den Angaben aus unserer Datenbank. Wenn ein Artikel mit diesem Wert gefunden wurde, speichern wir diese Ergebnisse in einer seperaten Variable und übergeben diese wieder an die Index-Datei, wo diese Werte dann eingesetzt werden.
Zusammenfassung
Wie man sieht ist der ganze Zauber um Suchmaschinenfreundliche Links nicht wirklich groß. Je nach System fällt es nur ein wenig komplexer bzw. weniger komplex aus. In modernen Systemen gibt es entweder schon vorgefertigte SEO-Urls (z. B. WordPress) oder man kann zusätzliche Komponenten für Suchmaschinenfreundliche Links installeren (z. B. Joomla).
Ich hoffe ich konnte Euch ein wenig mehr Verständnis für SEO-Links vermitteln. Wer mag kann gerne mal das komplette Tutorial von phpbuddy.eu durchprobieren. Ich denke das hilft noch einmal zum richtigen Verstehen.
Alle Posts der Woche 28 / 2009 anschauen
Fandest Du den Beitrag interessant?
Fatal error: Call to undefined function the_flattr_permalink() in /var/www/html/web1028/html/seo-geek-de/wp-content/themes/seogeek/single.php on line 48





