Was ist eine Rewrite Engine und wofür ist sie da?

Autor:   |  05.09.2019


Rewrite EngineDie Inhalte einer Webseite sind nur in den seltensten Fällen statisch, sondern werden stattdessen dynamisch aus einer individuellen Anfrage heraus generiert. Analog dazu ist es unerwünscht, dass die entsprechende Adresse ein für Menschen unverständliches Format besitzt - sie besteht meist aus der Domain, einer Unterseite und einem zusätzlichen Code, der häufig mit einem Fragezeichen eingeleitet wird. Eine der Hauptaufgaben einer Rewrite Engine ist es darum, bei einem Aufruf allgemein lesbare Informationen intern dem Webserver zu übergeben und nach außen eine leicht lesbare Adresse zum Beispiel in dem Format domain.tld/unterseite/inhalt/thema.html zu bewahren. Darüber hinaus kann eine Rewrite Engine aber auch noch komplexere Umwandlungen oder Weiterleitungen übernehmen.

Inhaltsverzeichnis

Alle populären Webserver unterstützen eine Rewrite Engine
Funktionsweise einer Rewrite Engine im Detail
Praktischer Einsatz von Mod Rewrite bei Apache 2 und NGINX
Apache 2 und die .htaccess Datei
Globale Konfiguration der Rewrite Engine bei NGINX
Verschiedene Einsatzmöglichkeiten einer Rewrite Engine
Fazit: Rewrite Engine erleichtert SEO, schafft Flexibilität und zusätzliche Sicherheit

Alle populären Webserver unterstützen eine Rewrite Engine

Bis in die Mitte der 2000er Jahr war Apache 2 der mit Abstand am weitesten verbreitete Webserver. Neben der kostenlosen Verfügbarkeit aufgrund seiner Open Source Lizenz, der Effizienz und der Performance war die flexible Verwendung durch seine Rewrite Engine ein Grund für die hohe Popularität. Dank dieser Vorteile erreichte der Webserver zwischenzeitlich einen Marktanteil von deutlich über 80 Prozent, die einzige erwähnenswerte Konkurrenz bestand in dem von Microsoft für Windows Server verwendeten IIS.

Ab etwa 2005 entwickelten sich zunehmend Alternativen zum Apache 2 Server, die allerdings die Funktionalität dessen Rewrite Engine aufgriffen und adaptierten. Zu diesen gehört beispielsweise NGINX oder das sehr leichte und ressourcensparende Lighttpd. Es ist mit Sicherheit dem Vorbild von Apache 2 zu verdanken, dass sich der Gedanke der Rewrite Engine global durchsetzen konnte. Heute gehört diese Erweiterung zum Kern aller für das Internet eingesetzten Webserver und ist aus Sicht der Nutzerfreundlichkeit und der Suchmaschinenoptimierung (SEO) zu einem unverzichtbaren Werkzeug für Webmaster und Administratoren geworden.

Funktionsweise einer Rewrite Engine im Detail

Um eine hohe Flexibilität zu gewährleisten und gleichzeitig das Kernprogramm möglichst übersichtlich zu halten, verwenden Webserver heute fast ohne Ausnahme einen modularen Aufbau. Bestimmte Funktionen können je nach Bedarf - ähnlich wie bei einem Plug-in - separat geladen und in die Basisausstattung eingebettet werden. Entsprechend diesem Konzept handelt es sich bei der Rewrite Engine fast immer um ein externes Modul, das zum Beispiel bei Apache 2 und Microsoft IIS den Namen Mod Rewrite (mod_rewrite) trägt. Um es zu verwenden, muss der Administrator Mod Rewrite in der Hauptkonfiguration eintragen - es wird anschließend bei jedem Start oder Neustart automatisch geladen und steht als native Funktion zur Verfügung.

Die Funktionsweise der Rewrite Engine ist auf den ersten Blick einfach und verständlich. Der Besitzer einer Webseite definiert bestimmte Orte oder Pfade einer Domain, bei der Mod Rewrite aktiv wird. Nimmt der Server eine Anfrage für eine der betreffenden Adressen entgegen, leitet er diese an die Engine weiter, die die vorher festgelegten Elemente in einer vorgegebenen Weise umschreibt und anschließend weiterleitet. Dabei können unterschiedliche Parameter verwendet werden - die Rewrite Engine ist in der Lage, Anfragen nach Adressen oder auch nach Metadaten wie Browser, IP-Adresse, Standort des Clients oder nach Quelle des Links zu differenzieren. Anschließend kann sie die Anfrage nach den gewünschten Merkmalen selektieren und an unterschiedliche Zieladressen weiterleiten.

Der häufigste Anwendungsfall einer Rewrite Engine ist allerdings mit Sicherheit das Umschreiben von Adressen von einem SEO- und nutzerfreundlichen Format in eines, das von der interpretierenden Skriptsprache wie PHP, Perl oder Python benötigt wird. Um dies zu erreichen, wandelt Mod Rewrite Teile der verwendeten URL oder anderer verfügbarer Daten in Variablen um und übergibt diese entsprechend dem angegebenen Muster an den Webserver. Es bildet somit eine interne Abstraktionsschicht zwischen den externen und den internen Formaten und gewährleistet die Kompatibilität zwischen beiden.

Praktischer Einsatz von Mod Rewrite bei Apache 2 und NGINX

Obwohl jeder Webserver eine Rewrite Engine in sein Konzept übernommen hat, unterscheiden sich die einzelnen Programme in der praktischen Anwendung. Das liegt nicht zuletzt an dem unterschiedlichen Aufbau der Software. Apache 2 setzt konsequent auf ein modulares Prinzip, NGINX hingegen kompiliert Module in das Kernprogramm ein. Dadurch können diese nicht wie bei Apache 2 nachträglich installiert und anschließend geladen werden, sondern müssen bereits bei der Erstellung des Paketes berücksichtigt werden. Aus diesem Umstand resultiert teilweise auch eine unterschiedliche Konfiguration des Mod Rewrite, die dafür verantwortlich ist, dass Einstellungen zwischen den beiden Webservern nicht miteinander kompatibel sind.

Apache 2 und die .htaccess Datei

Wohl jeder Nutzer von Apache 2 wird früher oder später mit der Verwendung von .htaccess Dateien auf unterschiedlichen Ebenen der Ordnerstruktur konfrontiert. Mit diesen bietet der Webserver ein sehr übersichtliches und außergewöhnlich flexibles System, die Rewrite Engine zu nutzen. Das Prinzip ist sehr einfach und beruht auf einer Datei mit dem Namen .htaccess, die in einem oder mehreren Ordnern angelegt werden und die Anweisungen an Mod Rewrite beinhalten. Dabei folgt der Ablauf einer strengen, logisch geordneten Hierarchie:

  • Bei dem Aufruf einer Domainadresse überprüft Apache 2 die Existenz einer .htaccess in dem Wurzelverzeichnis (Root).
  • Existiert eine entsprechende Datei, führt das Mod Rewrite die Anweisung aus.
  • Existiert keine Datei, kontrolliert Apache 2 hierarchisch alle folgenden Pfade.
  • Der Webserver leitet jede .htaccess Datei an Mod Rewrite weiter, bis er das Ziel erreicht.
  • Die Rewrite Engine nimmt Weiterleitungen jeweils einzeln entgegen und bearbeitet diese entsprechend ihrer Reihenfolge.
  • Unterverzeichnisse können darüber liegende Anweisungen - inklusive einem Passwortschutz - durch explizite Anweisungen aufheben.

Der letzte Punkt ist beispielsweise für die IT-Sicherheit wichtig - eine weitere Aufgabe, die häufig durch .htaccess übernommen wird. Er ermöglicht sowohl eine Staffelung der Zugriffsebenen wie eine unabhängige Differenzierung zwischen verschiedenen Bereichen einer Webseite.

Globale Konfiguration der Rewrite Engine bei NGINX

Im Unterschied zu Apache 2 ermöglicht NGINX nicht die lokale Speicherung von Regeln innerhalb eines Verzeichnisses, sondern definiert diese global in seiner Konfiguration. Dieser Umstand erschwert die Verwendung bei einigen Webhostern, die keinen Nutzerzugriff auf einen eigenen Server zulassen. Allerdings gibt es auch hier in der Regel die Möglichkeit, über lokale Einstellungen die Rewrite Engine zu nutzen. Das entscheidende Merkmal ist in jedem Fall, dass alle Anweisungen zentral und nicht durch einzelne Dateien innerhalb der betreffenden Verzeichnisse definiert werden.

Verschiedene Einsatzmöglichkeiten einer Rewrite Engine

Die Rewrite Engine gehört oft zu den wichtigsten Funktionen für die Feinabstimmung eines Webservers. Ihre Einsatzmöglichkeiten sind praktisch unbegrenzt und schließen unter anderem folgende Szenarien ein:

  • Umschreiben von SEO-relevanter Adressen mit einschlägigen Suchbegriffen
  • Schaffen einer übersichtlichen und einprägsamen Struktur für Verzeichnisse
  • Differenzierung unterschiedlicher Ebenen
  • Absicherung bestimmter Bereiche durch Passwort, Herkunft der Anfrage oder IP-Bereich
  • Geoblocking bestimmter Regionen
  • Einrichten von temporären oder dauerhaften Umleitungen auf eine andere Webseite

Fazit: Rewrite Engine erleichtert SEO, schafft Flexibilität und zusätzliche Sicherheit

Für einen Webserver gehört die Rewrite Engine sicherlich zu einem der wichtigsten Werkzeuge und übernimmt zahlreiche, unterschiedliche Aufgaben. Ihr universeller Ansatz vereinfacht viele Ziele, die sich sonst nur über Umwege oder durch eine umfangreiche Konfiguration durchsetzen ließen. Aus diesem Grund hat sie sich in den vergangenen Jahren zu einem der wichtigsten Hilfsmittel für eine effiziente Verwaltung und für temporäre wie permanente Lösungen entwickelt. Das Aufgabenspektrum reicht von der IT-Sicherheit über die Einbettung von relevanten Begriffen in der SEO bis hin zu permanenten Weiterleitungen bei einem Domainwechsel. Die Möglichkeiten und Fähigkeiten der Rewrite Engine sollten deshalb niemals unterschätzt werden.

Foto: Pexels pixabay.com