Apache2 Workshop Rewrite
Zur Navigation springen
Zur Suche springen
Apache2 Mod_Rewrite
- Das Modul mod_rewrite ermöglicht die Umschreibung von URLs.
- Es wird genutzt, um benutzerfreundliche URLs, Weiterleitungen und URL-Maskierung zu realisieren.
- Die Konfiguration erfolgt entweder direkt in der VirtualHost-Konfiguration oder über .htaccess-Dateien.
Aktivierung von mod_rewrite
- Apache-Modul aktivieren:
- a2enmod rewrite
- systemctl restart apache2
RewriteEngine und grundlegende Regeln
- Rewrite-Regeln werden mit der RewriteEngine gesteuert.
- Beispiel für eine einfache Regel in der VirtualHost-Konfiguration:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
<Directory /var/www/example>
AllowOverride All
Require all granted
</Directory>
RewriteEngine On
RewriteRule ^alteseite\.html$ /neuesziel.html [R=301,L]
</VirtualHost>
- Erklärung der Regel:
- RewriteEngine On – Aktiviert die Umschreibungsfunktionen.
- RewriteRule ^alteseite\.html$ /neuesziel.html [R=301,L] – Leitet alteseite.html dauerhaft auf neuesziel.html um.
Verwendung von .htaccess für mod_rewrite
- Falls kein Zugriff auf die VirtualHost-Konfiguration besteht, können Regeln in .htaccess definiert werden.
- Beispiel für eine RewriteRule in einer .htaccess-Datei:
RewriteEngine On RewriteRule ^seite/([0-9]+)/?$ seite.php?id=$1 [L,QSA]
- Diese Regel:
- Wandelt /seite/123/ in seite.php?id=123 um.
- [L] bedeutet, dass keine weiteren Regeln verarbeitet werden, falls diese zutrifft.
- [QSA] sorgt dafür, dass bestehende Query-Parameter angehängt werden.
Umleitung von HTTP auf HTTPS
- Die folgenden Regeln erzwingen HTTPS:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Entfernen von www aus der URL
- Beispiel für die Weiterleitung von www.example.com auf example.com:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Aufgaben
- Aktiviere mod_rewrite und teste eine einfache Weiterleitung.
- Erstelle eine benutzerfreundliche URL-Struktur mit Rewrite-Regeln.
- Erzwinge HTTPS mit einer Rewrite-Regel.
Warum ist mod_rewrite wichtig?
- Ermöglicht saubere und nutzerfreundliche URLs.
- Wird für SEO-Optimierung und Sicherheitsmaßnahmen eingesetzt.
- Bietet flexible Möglichkeiten zur Weiterleitung und Maskierung von URLs.