Grundlagen kurze URLs (SEO und SEF)
Geschrieben von: Michael Bäcker Donnerstag, den 14. Januar 2010 um 10:30 Uhr
Wofür soll das gut sein?
Es geht um die bessere Indizierbarkeit durch Searchengines (Stichwort: Search friendly URLs). Manche Searchengines mögen Parameter nicht.
Ebenso mögen manche Suchserver die Umlenkung zur Hauptseite nicht.
Wies geht zeigen wir hier ...
Dazu verwenden wir mod_rewrite vom Apache Webserver. Zuerst legt man eine .htaccess an, in der man das Umschreiben der URL veranlasst.
RewriteEngine On
#Articles
RewriteRule ^article([1-9][0-9]*).html /modules/news/article.php?storyid=$1
D.h. aus der Anfrage meineurl/article10.html wird meineurl/modules/news/article.php
In vielen CMS Systemen lässt sich das Gegenstück relativ leicht einbinden.
In dem CMS muss ein sogenannter outputfilter aktiviert werden. Viele CMS bieten solch eine Lösung an.
Dort setzt man dann als Filter folgendes Skript ein:
<?php
function x_rewrite_url($tpl_output, &$smarty) {
$in = array(
#article
"/modules\/news\/article.php\?storyid=([1-9][0-9]*)&page=([1-9][0-9]*)/",
"/modules\/news\/article.php\?storyid=([1-9][0-9]*)/",
);
$out = array(
"article\\1_\\2.html" ,
"article\\1.html" ,
);
$tpl_output = preg_replace($in, $out, $tpl_output);
return $tpl_output;
}
?>
Angepasst werden muss in diesem Skript das Array in und out. Es wird nach dem regulären Ausdruck aus $in gesucht und durch den Teil im Array $out ersetzt. Dadurch werden die vom CMS generierten Links (z.B. /modules/news/article.php?storyid=14) in die "schönen" URLs (z.B. article14,html) übersetzt.
:wq