Wie entstehen suchmaschinenfreundliche Links? Teil 1 von 2

Wir hören SEO-Menschen immer von suchmaschinienfreundlichen URLs bzw. Suchmaschinenfreundliche Links sprechen. Viele wissen auch, dass man damit "sprechende" Links verbindet, also Links welche man sich gut merken kann. Am besten mit einem passenden Link zum Thema. Nehmen wir zum Beispiel Links von xt:Commerce her. Produktlinks sind hier nach dem Schema aufgebaut: product_info.php?product_id = ...
Als SEF (Search a Friendly ) Link sähe dass dann z. B. so aus: domain.de/artikel/artikel2.html

Für den Menschen ist das weit einfacher zu merken als eine Zahl und eine kryptische URL. Wir sind es ja gewohnt, dass uns fertige Systeme wie xt:Commerce, Joomla oder WordPress von Haus aus suchmaschinenfreundliche Links anbieten. Wie enstehen aber solche Links? Dieser Frage möchte ich hier schon einmal ansatzweise auf den Grund gehen. Im ersten Teil vom Post gehe ich auf einfache Methoden ohne Aliase ein, im zweiten Teil folgt dann auch ein wenig PHP Code wie man einfach Suchmaschinenfreundliche Links umsetzen kann ohne auf ein CMS angewiesen zu sein.

Eine Variante der Suchmaschinenfreundlichen Links ohne Datenbank mittels .htaccess / mod_rewrite

Eine Variante der suchmaschinenfreundlichen Links, die man anwenden kann, welche auch schnell realisierbar ist (jedenfalls bei eigenen Projekten). Man kann auch fertige Projekte wie xt:Commerce umbauen (siehe Post "Fancy-URLs im Eigenbau") was allerdings etwas mehr Zeit in Anspruch nimmt, da man den Code erst etwas auseinander bauen muss. Ganz ohne Datenbank wird man zwar nicht auskommen, da der Content ja trotz allem irgendwo gespeichert sein muss. Ich möchte das erst einmal an einem einfachen Beispiel erklären.

Die einfache Methode - html -> php

Nehmen wir an, wir stehen am Anfang unserer Programmiererkarriere und arbeiten brav mit einzelnen PHP-Dateien. Bei kleinen Projekten kann dies durchaus möglich sein. Wie kann man jetzt Besucher daran hindern zu denken, dass die angezeigten Seiten dynamisch mit PHP aufbereitet sind? Wir tarnen unsere unschönen .php-Links in einfach statische html-Seiten. So wird z. B. hausdetail.php -> hausdetail.html. Wir müssen nur aufpassieren das wir bei der Navigation schon beachten, dass html ausgegeben werden soll.

Die htaccess-Datei würde demnach so aussehen:

RewriteEngine on
RewriteRule ^(.*).html$ $1.php

Was genau passiert hier? In der ersten Zeile sagen wir dem Server dass er das mod_rewrite starten soll. Damit ist er bereit unsere Anfragen zu verarbeiten. In der zweiten Zeile geben wir dem Server eine Regel nach der er arbeiten soll.
Übersetzt heißt das soviel wie "Nimm den Text der VOR .html steht und rufe dann diesen Text mit der Endung .php auf. Das $1 bezieht sich in diesem Fall auf die Regelklammer.

Die einfache Methode etwas erweitert

Gehen wir davon aus, dass wir uns ein Mini-News-System gebaut haben, dass uns anhand von übergebenen Id's die Nachrichten aus unseren Datenbank lädt. Nun möchten wir aber statt id=5 z. B. nachricht-5.html stehen haben (wobei "nachricht" auch der newstitel sein könnte).
Wir müssen also darauf achten, dass unser dynamisches System unsere SEF-Links auch korrekt ausgibt in der Navigation.
Bei diesem Beispiel müssten wir unsere .htaccess nur leicht abändern.

RewriteEngine on
RewriteRule ^nachricht_([0-9]+).html$ nachricht.php?id=$1

Hier haben wir wieder exakt das gleiche Prinzip. Wir werfen die Maschine an und übergeben Regeln. Nur das mod_rewrite diesmal auf alle Links achten soll, die mit nachricht_ beginnen. Die Zahl die dann hinten dran steht nimmt er als übergebene ID.

Lade Dir diesen Post als pdf-Datei herunter: Wie enstehen suchmaschinenfreundliche Links? Teil 1 (273)

Alle Posts der Woche 27 / 2009 anschauen

Fandest Du den Beitrag interessant?

Der Beitrag ist mir etwas wert:
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