Apache2 Workshop Rewrite

Aus Xinux Wiki
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.