Virtuelle Ordner für die eigene Homepage

Klärung des Begriffs

Doch zunächst einmal ist es wichtig zu klären, was mit einem virtuellen Ordner einer Website gemeint ist.

Rufst du beispielsweise www-coding.de/virtuelle-ordner-fuer-die-eigene-homepage/ auf, geht dein Webserver zunächst einmal davon aus, dass er den Ordner virtuelle-ordner-fuer-die-eigene-homepage öffnen und die dort befindliche Index-Datei öffnen soll.

Eine solche Form wirkt schöner und ist leichter zu merken als zum Beispiel www-coding.de/index.php?article=virtuelle-ordner-fuer-die-eigene-homepage oder www-coding.de/index.php?articleID=124. Müsste man allerdings für jede URL einen neuen Ordner einrichten würde es ziemlich unübersichtlich auf dem Server werden.

Um das Problem zu lösen kann man einen Ordner simulieren. Der Nutzer denkt, dass dieser aufgrund der URL existiert, intern wird jedoch eine ganze andere Seite aufgerufen. Wie das funktioniert wird hier erklärt.

Das brauchst du

So geht’s – Schritt für Schritt erklärt

  1. .htaccess beschreiben

    Als erstes solltest du die .htaccess anlegen. Öffne dafür einen beliebigen Texteditor und beschreibe die .htaccess mit folgendem Inhalt:

    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^(.*)/bilder/(.*)$ [NC]
    RewriteCond %{REQUEST_FILENAME} !^(.*).(gif|png|jpe?g|bmp|php|htm|html|js|css|txt|csv|pdf|xml)$ [NC]
    RewriteRule ^(.*)$ /index.php?url=$1

    In der ersten Zeile wird die benötigte RewriteEngine aktiviert.

    In der zweiten Zeile wird der real existierende Ordner „bilder“ ausgeschlossen. Solltest du beispielsweise ebenfalls einen „echten“ Bilder-Ordner auf deiner Homepage haben, so solltest du „bilder“ durch den Namen deines Ordner ersetzen.

    Die dritte Zeile definiert eine weitere Ausnahme. Es werden verschiedene Dateien ausgeschlossen. Rufen wir eine URL mit Dateiendung auf, die tatsächlich existiert, so wird diese auch angezeigt.

  2. .htaccess hochladen
    Speichere die „.htaccess“ mit einem einfachen Texteditor ohne weitere Endungen wie .txt. Nun lädst du sie in das Hauptverzeichnis (nicht in einen Unterordner) deines Webspace/Servers hoch.Sollte eine Fehlermeldung mit dem Aufruf 500-Fehler auftreten, dann stimmt etwas mit der von dir erstellten .htaccess nicht.
  3. URL Parameter mit PHP verarbeiten
    Die .htaccess übergibt die kompletten URL-Anhängsel nun in dem GET Parameter „url“ an die index.php deiner Website. Diese musst du nun verarbeiten, dafür eignet sich folgender Code Schnipsel:$url = explode("/", str_replace("", "", $_GET["url"]));

    Der Parameter wird abgefragt und Backslashes („\“) werden entfernt. Nun handelt es bei $url um ein Array, welches die verschiedenen Teile der URL enthält. Rufst du zum Beispiel deine-url.de/xy/01-2013/ gilt $url[0] = „xy“; sowie $url[1] = „01-2013“;. Du kannst diese Daten nun in der PHP Datei verwenden.

    So kannst du zum Beispiel per include eine bereits vorhandene Datei einbinden oder Daten aus der Datenbank abfragen. Die Ausgabe funktioniert wie üblich. Beachte jedoch, dass der interne Pfad nicht gleich der URL-Pfad ist. Dies spielt beispielsweise bei der Verwendung von include eine wichtige Rolle.

  4. Fehlerseiten
    Mit dem Nutzen von virtuellen Ordnern auf deiner eigenen Homepage ergibt sich aber auch eine Problematik: Die .htaccess interessiert sich nicht dafür, ob der virtuelle Ordner tatsächlich existiert oder nicht. Die Zuständigkeit erhält in jedem Fall die PHP Datei.Du solltest also mit PHP, etwa durch einen Abgleich mit der Datenbank prüfen, ob diese Seite existiert und sonst eine serverinterne Fehlerseite aufrufen und einen 404-Headercode senden. Das kann zum Beispiel in PHP so aussehen:

    header('HTTP/1.1 404 Not Found');
    require_once 'error_404.php';
    exit;

    Die Datei error_404.php müsste dann entsprechend eine Fehlermeldung ausgeben.

  5. Fertig!
    Du kannst jetzt die virtuellen Ordner, die relativ einfach mit PHP und der .htaccess realisiert wurden, auf deiner Homepage einsetzen.

Deprecated: Directive 'allow_url_include' is deprecated in Unknown on line 0