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. Schliesslich 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:

sudo gedit /etc/apache2/sites-enabled/000-default

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
RewriteCond     %{SERVER_PORT} ^80$
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 9. Mai 2007 14:55 von manithu erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Server, Netzwerk, Internet, Apache