Tipps
Wenn man RewriteRules für VirtualHosts anlegen will, sollte man unbedingt eine RewriteCond angeben, sonst gilt es für alle VirtualHosts mit der gleichen IP.
RewriteCond %{HTTP_HOST} ^virtualhost\.example\.com(:.*)?$
- Track|Trace deaktivieren:
Problembeschreibung hier: http://www.heise.de/security/news/meldung/43354
In /etc/apache2/sites-available/default folgendes hinzufügen:
RewriteEngine On RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F]
Am besten ziemlich weit am Anfang. Außerdem benötigt man eine Datei /etc/apache2/mods-available/rewrite.load mit folgenden Inhalt:
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
Dann noch einen Verweis anlegen:
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
Getestet unter Debian 3.1 (unter anderen Distributionen wird das unter Umständen anders gemacht)
Fragen
Frage: kann mir dies Regeln jemand erklären (insbes. die letzten drei) -- RonnyBuchmann 2002-11-08 19:08:59
LoadModule rewrite_module modules/mod_rewrite.so LoadModule proxy_module modules/libproxy.so AddModule mod_rewrite.c AddModule mod_proxy.c RewriteEngine on ProxyRequests on RewriteRule /mldonkey http://localhost:4080/$1 [P,L] RewriteRule /(submit.*) http://localhost:4080/$1 [P,L] RewriteRule /(files.*) http://localhost:4080/$1 [P,L] ProxyPassReverse /(.*) http://localhost:4080/$1
Ja kann ich (hoffe ich zumindest)!
Rule: Der Server dient als Reverse-Proxy und leitet /mldonkey nach localhost:4080/ um
Rule: Der Server dient als Reverse-Proxy und leitet alles was mit submit beginnt nach localhost:4080/ um, wobei der Dateiname z.B. submit.html angehängt wird.
- Rule: analog zu 2.
ProxyPassReverse: Sorgt dafür, dass die Antwort von localhost:4080 so umgeschrieben wird, dass als Absender nicht localhost:4080, sondern der ursprüngliche Anfragename genannt wird. Dadurch wir verhindert, dass ein Client bemerkt, dass hier ein Reverse-Proxy arbeitet. Alle Adressen werden so maskiert, dass es für den Client so aussieht als würde er eine Antwort von Port 80 auf der externen IP mit dem externen Namen bekommen!
Hoffe das hilft -- JanRoehrich 2002-11-08 22:25:32
Ergänzung:
In den neusten Betas müssen die Rewrite Rules noch ergänzt werden. Bei mir funktioniert folgende Konfiguration:
RewriteEngine on ProxyRequests on RewriteRule /mldonkey http://localhost:4080/$1 [P,L] RewriteRule /(submit.*) http://localhost:4080/$1 [P,L] RewriteRule /(results.*) http://localhost:4080/$1 [P,L] RewriteRule /(commands.*) http://localhost:4080/$1 [P,L] RewriteRule /(oneframe.*) http://localhost:4080/$1 [P,L] RewriteRule /(noframe.*) http://localhost:4080/$1 [P,L] RewriteRule /(files.*) http://localhost:4080/$1 [P,L] RewriteRule /(h.css) http://localhost:4080/$1 [P,L] RewriteRule /(dh.css) http://localhost:4080/$1 [P,L] RewriteRule /(i.js) http://localhost:4080/$1 [P,L] RewriteRule /(di.js) http://localhost:4080/$1 [P,L] ProxyPassReverse /(.*) http://localhost:4080/$1
Hoffe auch dies hilft. -- Heinz Stampfli <heinz.st AT mpf.li> & CU @ www.hatepage.com