ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

mod rewrite

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

"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.

Diese Revision wurde am 1. Juni 2011 13:26 von ubot erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Server, Netzwerk, Internet, Apache