Mod rewrite: Unterschied zwischen den Versionen
(→Die Macht der flexiblen URL) |
|||
Zeile 8: | Zeile 8: | ||
== Die Macht der flexiblen URL == | == Die Macht der flexiblen URL == | ||
− | Administratoren und Architekten von komplexen Websystemen arbeiten oftmals mit dem Modul "mod_rewrite", denn es ermöglicht ein einfaches Umschreiben von URLs. Vor allem für das Umschreiben von dynamischen in | + | Administratoren und Architekten von komplexen Websystemen arbeiten oftmals mit dem Modul "mod_rewrite", denn es ermöglicht ein einfaches Umschreiben von URLs. Vor allem für das Umschreiben von dynamischen in [[SEO-freundliche URLs]] kommt mod_rewrite häufig zum Einsatz. |
== Die Rewriteengine == | == Die Rewriteengine == |
Version vom 16. September 2020, 13:08 Uhr
Inhaltsverzeichnis
Definition
Der Begriff "mod_rewrite" bezeichnet ein Modul für den Apache Webserver, das die Weiterleitung bestimmter Aufrufe an den dedizierten Inhalt steuert. Grundsätzlich wird das Modul dafür verwendet, einen eingehenden Aufruf auf einen Pfad im Dateisystem des Webservers zu transformieren. Somit ist es möglich, eine URL “umzuschreiben”. Dafür wird eine sogenannte "rewriterule", also eine Regel, festgelegt, die diese Weiterleitung repräsentiert und mithilfe von Regular Expressions realisiert wird.
Die Macht der flexiblen URL
Administratoren und Architekten von komplexen Websystemen arbeiten oftmals mit dem Modul "mod_rewrite", denn es ermöglicht ein einfaches Umschreiben von URLs. Vor allem für das Umschreiben von dynamischen in SEO-freundliche URLs kommt mod_rewrite häufig zum Einsatz.
Die Rewriteengine
Hinter der Umsetzung des Rewrite Moduls steht eine komplexe Rewriteengine. Das bedeutet, eine eigens dafür zur Verfügung stehende Software nimmt die Regeln, die in der .htaccess Datei oder der (V-)Serverconfig eines Webservers definiert sind, entgegen und interpretiert sie derart, dass der Webserver in der Lage ist, die Rewrite Regeln umzusetzen. Die Rewriteengine kann eine Reihe von Bedingungen zu jeder Regel auswerten. Dabei wird stets die gesamte URL berücksichtigt, die auch URI genannt wird (Unified Resource Identifier).
Direktiven
Die Funktionsweise des Apache Rewrite Moduls wird über sogenannte Direktiven gesteuert. Diese Angaben bilden Bereiche innerhalb der Webserver-Konfiguration, die Funktionen einleiten und so eine übersichtliche und voneinander abgegrenzte Konfiguration zum Beispiel für verschiedene URLs oder verschiedene Pfade möglich macht. Besonders bekannt und häufig eingesetzt ist die Rewrite Base Directive. Sie gibt an, welcher relative Pfad durch eine Rewriterule ersetzt werden soll.
Darüber hinaus gibt es weitere Direktiven, zum Beispiel um Bedingungen abzubilden. Auf diese Weise lassen sich komplexe Regeln für einen Webauftritt vereinbaren. Wichtig ist dabei, dass stets nachvollziehbar ist, welche Regeln konfiguriert wurden, um sich widersprechende oder nicht erfüllbare Regeln zu vermeiden.
Beispiel
Für das Apache Modul mod_rewrite gibt es zahlreiche Einsatzszenarien. Viele Ausdrücke werden daher für Standardfälle veröffentlicht und können von jedem Administrator eingesetzt werden. Ein Beispiel für eine Rewriterule ist:
RewriteEngine on RewriteRule (.*)\.html$ /cgi-bin/script.pl?var=$1
Die Semantik der Regel basiert auf Regular Expressions. Die Regeln können somit als eine Art "Suchen und Ersetzen" aufgefasst werden. Das bedeutet, eine eingehende Zeichenkette wird überprüft und umgeschrieben.
Im obigen Beispiel werden alle Zugriffe auf die HTML-Datei im Basisverzeichnis des Apache Webservers gefunden. Alle anderen Eingänge werden nicht durch diese Rewriterule bearbeitet.
Alle Eingänge, die dieser Bedingung genügen, werden auf ein Script weitergeleitet. Dabei spielt es keine Rolle, mit welcher URL oder URI der Aufruf geschehen ist. Das Script wird dabei derart aufgerufen, dass der Name des ursprünglich aufgerufenen Pfades mit übergeben wird.
An diesem Beispiel ist zu erkennen, dass das Rewrite Modul durchaus dafür geeignet ist, komplexe Anwendungsfälle auf einem Webserver und darüber hinaus zu steuern.
Bedeutung für die Suchmaschinenoptimierung
Für die Suchmaschinenoptimierung hat die Rewriteengine eine große Bedeutung, denn die Routinen einer Suchmaschine sind darauf ausgelegt, gut strukturierte und menschenlesbare URL Bäume zu finden.
Viele Webanwendungen generieren jedoch dynamische URLs, die für den Menschen nicht logisch erfassbar sind und auch nichts über den inhaltlichen Aufbau eines Internetauftritts aussagen.
Mithilfe des Apache Moduls mod_rewrite lässt sich dieses Problem jedoch beheben, indem komplexe dynamische URLs in “sprechende” URLs umgeschrieben werden. Dadurch wird sowohl für User als auch für Suchmaschinen die Ordnerstruktur einer Website leichter nachvollziehbar. Infolgedessen kann der User bereits in den SERPs anhand der URL eines Suchergebnisses beurteilen, was er auf der Seite vorfinden wird und ob diese relevant für ihn ist.
Weiterführende Links
- https://httpd.apache.org/docs/current/mod/mod_rewrite.html
- https://www.webhosting-franken.de/mod_rewrite-benutzen-ein-paar-beispiele/
- https://moz.com/blog/using-mod-rewrite-to-convert-dynamic-urls-to-seo-friendly-urls