Apache | RewriteRule | Proxy | Intranet | AccessControl?!
voltano
- webserver
Hello World,
folgendes problem:
ich lass einen apache im intranet als proxy-server laufen:
<IfModule mod_proxy.c>
ProxyRequests On
<Directory proxy:*>
Order deny,allow
Deny from all
Allow from all
</Directory>
ProxyVia On
CacheRoot "C:/Programme/Apache Group/Apache/proxy"
CacheSize 5
CacheGcInterval 4
CacheMaxExpire 24
CacheLastModifiedFactor 0.1
CacheDefaultExpire 1
</IfModule>
dann habe ich noch einen VirtualHost:
<VirtualHost *>
ServerName namestring
DocumentRoot e:/htdocs/dir
</VirtualHost>
Ist ProxyRequests On, kommt jeder client im intranet ins internet. ist ProxyRequsts Off, kommt jeder client auf den VHost.
Und an der Stelle möchte ich mittels .htaccess-datei ne "weiche" einbauen... wenn das so geht... diese .htaccess schreibe ich mit php immer wieder neu. allerdings so, dass eine bestimmte client-ip ins internet kommt - alle anderen nicht.
wie kann ich das machen? vielleicht kann mir jemand helfen. ich versuchs gerade mit den rewriterule. ginge es, dass ich den proxy immer an habe, aber die URL vom client standartmässig einfach durch http://192.168.0.1/vhost/index.php ersetze?!?
vielen dank
volt
Hi voltano,
Order deny,allow
Deny from all
Allow from all
welchen Sinn soll _das_ denn machen?
Und an der Stelle möchte ich mittels .htaccess-datei
Nein, möchtest Du nicht. Du möchtest das in Deiner httpd.conf tun.
diese .htaccess schreibe ich mit php immer wieder neu.
Wieso das denn?
allerdings so, dass eine bestimmte client-ip ins internet kommt - alle anderen nicht.
Ich verstehe nicht, was Du tun willst. Du bist doch im Intranet und hast stabile IP-Adressen?
wie kann ich das machen?
Was willst Du erreichen?
Viele Grüße
Michael
hi michael,
ich möchte, dass der intranetserver einen mechanismus auslöst, der dem client den zugang zum internet gestattet.. d.h. der client im intranet wird, egal welche url er eintippt, immer auf den vhost geführt... von dort kann dann die weiche umgestellt werden.. aber ich rätsel die ganze zeit, wie man das lösen könnte...
Hi voltano,
Du hast einen sehr komplexen Lösungsweg eingeschlagen, mir aber bisher nicht begreiflich machen können, warum Du genau diesen Weg gehen willst, wo es doch so viele andere Möglichkeiten gäbe.
ich möchte, dass der intranetserver einen mechanismus auslöst, der dem client den zugang zum internet gestattet.. d.h. der client im intranet wird, egal welche url er eintippt, immer auf den vhost geführt...
Ich kann mir nicht vorstellen, wie das funktionieren sollte, ohne daß Du Dein gesamtes Intranet dieser Aufgabe unterordnest.
Überlege Dir mal, was passiert:
1. Dein Benutzer tippt einen URL in seinen Browser.
2. Der Browser macht einen DNS-Zugriff, um den Domain-Namen dieses URL auf eine IP-Adresse abzubilden. Mit welcher DNS-Quelle tut er das? Ist Dein Apache als Proxy in die Konfiguration eines jeden Browsers Deines Intranet eingetragen? Wenn nicht, dann hast Du wahrscheinlich schon verloren - und Dein Apache ist bis zu dieser Stelle noch gar kein Bestandteil des Szenarios.
3. Mit der so gewonnenen IP-Adresse macht der Browser einen HTTP-Zugriff. Hierbei sendet er dem Apache einen "Host:"-Header mit demjenigen Domain-Namen, welchen er aus dem URL extrahiert hat. Wenn dieser nicht identisch ist mit dem ServerName (oder einem ServerAlias) Deines Virtual Host, dann hast Du wieder verloren ... jedenfalls bei Name-based Virtual Hosts.
Erstens würde ich einen Apache nicht als Proxy-Server zum Surfen verwenden. Mit Squid (auf derselben Maschine, aber einem anderen Port) fährst Du in dieser Hinsicht vermutlich besser, und konfigurieren kann man Squid ähnlich komfortabel wie Apache auch.
Zweitens verstehe ich nicht, wofür Du überhaupt einen Virtual Host brauchst - Deine lokalen Seiten scheinen ja nicht mehr als einen VirtualHost zu umfassen, und mod_proxy kannst Du auch in diesen einbinden. Also: Entferne den Virtual Host und löse Dein Problem mit einem normalen Server ... sofern Du nicht im DNS-Universum scheiterst.
Viele Grüße
Michael