ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

mod rewrite

Fehlendes Makro

Das Makro „Getestet“ konnte nicht gefunden werden.

 * [1]: [:Terminal: Ein Terminal öffnen]
 * [2]: [:Editor: Einen Editor öffnen]

mod_rewrite ist ein Apache Modul, um URLs zu manipulieren. Mit der RewriteEngine des Apache-Webservers ist es möglich, die angeforderte URL anhand von Regeln "umzuschreiben" (en: to rewrite). Basierend auf einem Parser für Reguläre Ausdrücke kann die angeforderte URL manipuliert werden.

mod_rewrite

Als erstes muss das Modul aktiviert werden

sudo a2enmod rewrite

Das Verzeichnis für die Prozess-ID fehlt eventuell, man muss es daher mit

sudo mkdir -p /var/run/apache2
sudo chown -R www-data /var/run/apache2

anlegen. Schließlich muss die Konfiguration von Apache wieder neu eingelesen werden

sudo /etc/init.d/apache2 force-reload

Modul nutzen

Üblicherweise wird die Rewrite-Bedingungen direkt über .htaccess-Dateien in den entsprechenden Verzeichnissen des Webservers festgelegt.

RewriteEngine on
RewriteCond ...

Um das Modul in .htaccess-Dateien zu aktivieren, muss meist noch die Datei /etc/apache2/sites-enabled/000-default angepasst werden. Dazu muss die Datei in einem Editor mit Root-Rechten geöffnet werden [2]:

Anschließend muss die letzte Zeile in dieser Passage

<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None

geändert werden. Um das Umschreiben von URLs zu erlauben, muss das "None" durch "FileInfo" ersetzt werden. Andere mögliche Werte können auf der Apache Webseite 🇩🇪 nachgelesen werden.

Beispiele

Webmailer auf https umleiten

Oftmals wird z.B. gewünscht, dass gewisse Seiten nur über https erreicht werden können. Ein klassisches Beispiel sind Webmailer wie Squirrelmail oder RoundCube Webmail 🇬🇧 .

In der Datei /etc/apache2/sites-available/default müssen dafür z.B. die Zeilen

RewriteEngine   on
RewriteRule     ^/webmail(.*)$ https://%{SERVER_NAME}/webmail$1 [L,R]
RewriteLog      "/var/log/apache2/rewrite.log"
RewriteLogLevel 2

hinzugefügt [2] werden. Hier würde http://domain.tld/webmail'' automatisch auf https://domain.tld/webmail'' umgeleitet werden.

IP-Bereiche aussperren

Über die Regel

RewriteEngine   on
RewriteCond %{REMOTE_ADDR} ^123.456.789. [OR] 

könnte man z.B. einen kompletten IP-Bereich wie 123.456.789.* komplett aussperren.


  • ["Kategorie/Internet"]

  • ["Kategorie/Netzwerk"]

  • ["Kategorie/Server"]

Diese Revision wurde am 10. Dezember 2007 20:12 von SnowMann erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Server, Netzwerk, Internet, Apache