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 Webserver festgelegt.
RewriteEngine on RewriteCond ...
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.
Links¶
["Kategorie/Internet"]
["Kategorie/Netzwerk"]
["Kategorie/Server"]