PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache 1.3.x: Rewrite und .htaccess kombinieren - Geht das?



ThyMaster
23.05.05, 13:53
Hi,

ich habe im Intranet einen proprietären Web-Server laufen, dessen Inhalte nur via "mod_rewrite" Rules über den Apache Web-Server dargestellt werden können (mod_proxy funktioniert leider nicht)

Das "rewrite" funktioniert auch einwandfrei, jedoch möchte ich den Zugriff für extern/Internet paßwort-schützen, ergo über .htaccess gehen.

Wie mache ich das?
Ich kann ja keine .htaccess Datei in das Verzeichnis stellen, da es dieses ja nur virtuell (-> rewritten) gibt.

Irgendjemand eine Lösung?

Danke & Gruß
Falko

ThyMaster
24.05.05, 09:16
Hab die Antwort gefunden:

Es geht, is' aber schmutzig (und benötigt einen Trick).

Zuerst habe ich ein lokales Rewrite eingerichtet, bei dem Apache Zugriffe auf den den Web-Server im lokalen Netz mapped.
Dann (siehe code unten) habe ich wiederum in der Internet Sektion von Apache einen Proxy auf eben sich selbst eigerichtet und final auch noch einmal ein nötiges Rewrite aufgesetzt.

M.a.W.:

Request von Internet an internen Web-Server X
Apache nimmt entgegen und fragt nach Passwort
Apache bekommt Password und leitet an sich selbst(!) weiter (Proxy)
Wiederum Apache macht ein rewrite auf den angefragten Web-Server X
X liefert die Seiten, die wiederum von Apache per Rewrite ans Internet gegeben werden
Fertig! (oder so ähnlich :) )



ProxyPass /myservice/ http://intranet.server/myservice/
<Directory proxy:http://intranet.server/myservice/>
Order allow,deny
AuthType Basic
AuthName "My Service (secure)"
AuthUserFile /etc/httpd/passwd
Require valid-user
Satisfy Any
</Directory>

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteLog /var/log/httpd/rewrite_log
RewriteLogLevel 9
RewriteCond %{REQUEST_URI} /myservice/.*
RewriteRule ^/myservice(.*) http://intranet.server/myservice$1 [P] [L]
RewriteCond %{HTTP_REFERER} https://my.internet.server/myservice.*
RewriteRule ^(.*) https://my.internet.server/myservice$1 [R]
</IfModule>

Gruß
Falko