impressum sitemap contact
Clean URLs mit PHP
posted on Sunday, 20. December 2009 at 22:14 by xenon

Clean URLs gehören mittlerweile zum Standardrepertoire jeder Webapplikation, die etwas auf sich hält. Die Vorteile liegen klar auf der Hand: Statt einem potentiellen Besucher oftmals kryptische Zeichenkolonnen anzuzeigen aus denen beim besten Willen nicht erkennbar ist, was sich nun hinter "id=23" verbergen mag lassen diese "sauberen" URLs in der Regel auf den ersten Blick erkennen, was auf der dahinter stehenden Webseite wohl zu finden sein wird. Zudem sind diese URLs weitaus einprägsamer und können so besser erinnert werden.

Je nach Verzeichnisstruktur und internem Aufbau der Webapplikation kann es jedoch etwas mühsam sein, komplexe ModRewrite-Regeln zu erstellen. Eine simple aber effektive Lösung ist es daher, die komplette URL via ModRewrite an die Webapplikation zu übergeben, welche die Kontrollvariablen dann aus dem String ausliest.

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ main.php?clean_url=$1 [L,QSA]

Hierbei stellen die ersten beiden RewriteConditions sicher, dass URLs für existierende Dateien wie Scripte und Stylesheets nicht umgeleitet werden. Die eigentliche Regel leitet dann die komplette URL an das Script main.php weiter.

Letzteres nutzt dann explode(), um die einzelnen Werte in Variablen zu speichern:

if($_REQUEST['clean_url'] != '')
{
    $request = explode('/', $_REQUEST['clean_url']);
   
    for($i=0; $i<count($request); $i++)
    {
        $_REQUEST['var'][$i] = $request[$i];
    }
}

Dem Script stehen damit beliebig viele übergebene Variablen in einem Array $_REQUEST['var'] zur Verfügung.

Comments:
There are no comments for this news yet
Leave a comment:
Name *:
Email *:
Homepage:
Text *:
* Pflichtfeld
Die Emailadresse wird für die Erstellung des Gravatars benötigt. Sie wird nicht an Dritte weitergegeben oder anderweitig verwendet.