Gute RewriteRules in .htaccess Dateien sind ein wichtiges Instrument in der Suchmaschinenoptimierung für Google und Co. Häufig sehen wir RewriteRules in .htaccess-Dateien, die vollkommen unflexibel aufgebaut sind und den Programmierer mehr Zeit kosten als nötig.

In dieser kurzen Anleitung erklären wir, wie RewriteRules in einer .htaccess Datei zum Zwecke der Suchmaschinenoptimierung und Lesbarkeit am effektivsten eingesetzt werden.

Manche mögen sich fragen „Was sind RewriteRules und .htaccess Dateien?“
Dies wollen wir kurz erklären. Bisher sahen URLs in Webanwendungen z.B. so aus:

www.meinedomain.de/index.php?cat_id=78&topic_id=37682&stichwort=hannover&session=DSKLG630RHSRGOHL

Diese Adresse versteht weder ein Mensch noch Google. Heutzutage werden Adressen besser lesbar aufgebaut, so dass sie für den Menschen und vor allem für die Suchmaschine leicht zu verstehen sind. Zum Beispiel so:

www.meinedomain.de/autos/citroen-gebraucht-kaufen/stichwort:hannover

Und diese schönen URLs generiert man mittels RewriteRules in einer .htaccess-Datei:

RewriteEngine On
RewriteBase /

RewriteRule ^(.*)$ index.php

Was passiert hier?

Wir schicken einfach jede aufgerufene URL auf die index.php und dort erledigen wir den Rest.

Unsere index.php könnte nun z.B. so beginnen:

<?

$url = explode("/",$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]);

?>

In dieser Zeile zerstückeln wir den aufgerufenen Domainnamen und die darauf folgende URL anhand des Zeichens / (Backslash). Wenn wir nun vom der beispielhaften URL www.meinedomain.de/autos/citroen-gebraucht-kaufen/stichwort:hannover ausgehen, sieht der Inhalt des $url Arrays so aus:

Array ( [0] => www.meinedomain.de [1] => autos [2] => citroen-gebraucht-kaufen [3] => stichwort:hannover )

Damit kann man arbeiten, oder? Von nun an haben wir die aufgerufene Domain in $url[0] und alle nötigen Variabeln ab $url[1] aufwärts. Das Stichwort „Hannover“ brauchen wir nun aber natürlich auch in einer Variabel mit dem Namen stichwort. Daher ergänzen wir die index.php noch ein wenig:

<?

$url = explode("/",$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]);

foreach($url as $key => $value) {
  if(strpos($value,":")) {
    $var = explode(":",$value);
    $url[$var[0]] = $var[1];
    unset($url[$key]);
  }
}

?>

Hier durchlaufen wir einmal das $url Array und durchsuchen jeden Teil nach dem Zeichens : (Doppelpunkt). Wenn das Zeichen gefunden wird, splitten wir den Teil anhand selbigen Indizes und speichern es als $key => $value wieder in das $url Array.

Per print_r($url); sieht das Array dann so aus:

Array ( [0] => www.meinedomain.de [2] => autos [3] => citroen-gebraucht-kaufen [stichwort] => hannover )

Nun können wir in der URL beliebig Keywords für die Suchmaschinen und gleichzeitig alle nötigen Variabeln für den Seitenaufbau platzieren.

Vielen Dank für die Aufmerksamkeit!